当前位置: 首页 > news >正文

天津 响应式网站设计百度网页

天津 响应式网站设计,百度网页,网站制作及实现,手机商城app开发公司1.2 事务管理器TransactionManager org.springframework.transaction.TransactionManager没有任何方法,仅作为类型标识,通常使用接口org.springframework.transaction.PlatformTransactionManager,该接口提供三个方法处理事务。事务管理器的类图如下: 其中AbstractPlatfor…

1.2 事务管理器TransactionManager

org.springframework.transaction.TransactionManager没有任何方法,仅作为类型标识,通常使用接口org.springframework.transaction.PlatformTransactionManager,该接口提供三个方法处理事务。事务管理器的类图如下:

在这里插入图片描述

其中AbstractPlatformTransactionManager类是PlatformTransactionManager接口的基础实现,里面有事务管理器的公共逻辑。在不同场景使用的事务管理器在它的基础上完善细节。

数据访问技术实现
JDBCDataSourceTransactionManager
JPAJpaTransactionManager
HibernateHibernateTransactionManager
JTAJtaTransactionManager
1.2.1 TransactionStatus

org.springframework.transaction.TransactionStatus接口继承了TransactionExecution和SavepointManager两个接口,因此可以使用TransactionStatus对象查看事务的执行情况和进行savepoint操作。在DefaultTransactionStatus实现类中,savepoint操作是委托给transaction对象实现的,该对象必须也必须实现SavepointManager接口

在这里插入图片描述

1.3 AbstractPlatformTransactionManager

该类抽象了TransactionManager的工作逻辑,也是上面提到的所有TransactionManager的父类

1.3.1 getTransaction
	@Overridepublic final TransactionStatus getTransaction(@Nullable TransactionDefinition definition)throws TransactionException {// Use defaults if no transaction definition given.TransactionDefinition def = (definition != null ? definition : TransactionDefinition.withDefaults());Object transaction = doGetTransaction(); // 调用子类的实现获取事务对象boolean debugEnabled = logger.isDebugEnabled();// 判断当前是否已经存在事务。该方法默认返回false,但是子类都会有自己的实现// 判断是否是否已经存在,主要用于处理事务的propagation逻辑if (isExistingTransaction(transaction)) {// Existing transaction found -> check propagation behavior to find out how to behave.return handleExistingTransaction(def, transaction, debugEnabled);}// PROPAGATION_MANDATORY表示需要有事务,没有事务将报错if (def.getPropagationBehavior() == TransactionDefinition.PROPAGATION_MANDATORY) {throw new IllegalTransactionStateException("No existing transaction found for transaction marked with propagation 'mandatory'");}else if (def.getPropagationBehavior() == TransactionDefinition.PROPAGATION_REQUIRED ||def.getPropagationBehavior() == TransactionDefinition.PROPAGATION_REQUIRES_NEW ||def.getPropagationBehavior() == TransactionDefinition.PROPAGATION_NESTED) {// 暂停前一个事务,通常为null,返回SuspendedResourcesHolder对象,用于恢复前一个事务SuspendedResourcesHolder suspendedResources = suspend(null);try {return startTransaction(def, transaction, debugEnabled, suspendedResources);}catch (RuntimeException | Error ex) {// 如果异常了,恢复前一个事务resume(null, suspendedResources);throw ex;}}else { // 用户自定义的传播级别// Create "empty" transaction: no actual transaction, but potentially synchronization.if (def.getIsolationLevel() != TransactionDefinition.ISOLATION_DEFAULT && logger.isWarnEnabled()) {logger.warn("Custom isolation level specified but no actual transaction initiated; " +"isolation level will effectively be ignored: " + def);}boolean newSynchronization = (getTransactionSynchronization() == SYNCHRONIZATION_ALWAYS);return prepareTransactionStatus(def, null, true, newSynchronization, debugEnabled, null);}}

开始一个事务

/*** Start a new transaction.*/
private TransactionStatus startTransaction(TransactionDefinition definition, Object transaction,boolean debugEnabled, @Nullable SuspendedResourcesHolder suspendedResources) {// 默认为trueboolean newSynchronization = (getTransactionSynchronization() != SYNCHRONIZATION_NEVER);// 获取status对象DefaultTransactionStatus status = newTransactionStatus(definition, transaction, true
http://www.tj-hxxt.cn/news/66955.html

相关文章:

  • 织梦网站tel标签优化营商环境的措施建议
  • 梧州网站开发公司网站推广方法
  • 户网站建设整改报告百度百度一下你就知道主页
  • 网络推广和网站推广网站怎样才能在百度被搜索到
  • 手机网站建设书籍google安卓手机下载
  • 政府网站建设的意义十大营销模式
  • 免费企业建站模板手机seo关键词优化
  • 微信小程序服务器一年多少钱西青seo
  • 做水印的网站百度seo推广优化
  • 做网站跟网站设计的区别优化网络软件
  • 在线视频网站怎么做拉新任务接单放单平台
  • 学校网站首页模板美国搜索引擎
  • 绿色食品网站开发步骤微信小程序怎么做
  • 做视频可以赚钱的网站seo的方法
  • wordpress自主注册杭州seo公司服务
  • 中国网建短信平台西安官网seo
  • 自己做的网站地址手机怎么打不开站长之家最新域名查询
  • 专注昆明网站建设蚁坊软件舆情监测系统
  • 天津如何做百度的网站免费域名申请个人网站
  • 网站做SEO优化9个广州seo推广神技
  • asp.net 网站计数器网络营销案例100例
  • 网站 模板 下载百度站长工具综合查询
  • 建立微信公众号的流程东莞seo靠谱
  • asp.net 做网站竞价恶意点击犯法吗
  • 做动态网站需要什么软件大数据营销系统软件
  • 网上做网站广告投放百分百营销软件官网
  • Myeclipse怎么做网站seo免费
  • 公司装修设计图片网站排名优化首页
  • 网站使用微信支付鞍山seo外包
  • 沈阳男科医院哪家好收费合理企业新网站seo推广