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

百度服务器建设自己的网站义乌产品设计公司

百度服务器建设自己的网站,义乌产品设计公司,佛山禅城,做网站宣传图片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.yayakq.cn/news/889953/

相关文章:

  • 黄骅市做网站长尾关键词是什么
  • 深圳网站建设哪家专业劳务派遣东莞网站建设
  • 网站后台logowordpress wp_postmeta
  • 重庆网站设计制造厂家写简历的网站
  • 台州平台网站建设做任务挣钱的网站聚
  • 网站设计 版权深圳手机网站建设价格低
  • 网站主页设计优点营销策划公司 采纳策划
  • 做网站用什么编程百度信息流代运营
  • 网站建设顶层设计腾讯公司网站
  • 东莞中小企业网站制作设计一个产品
  • 做网站和做网页有啥区别黄页88网官网首页
  • 软件公司网站模板商丘做网站的公司
  • 石家庄专业模板网站制作价格如何免费申请自己的网站
  • 在百度上建网站怎么建设怎么看网站用的什么后台
  • 有主体新增网站vi设计公司 成都
  • 网站安全建设总结报告网络搭建及应用
  • 单位网站建设的必要性程序员wordpress插件
  • 网站开发介绍pptwordpress版本对应的php版本号
  • 支持api网站开发黄冈网站建设优化排名
  • 商城网站 模板有哪些免费的ppt模板下载网站
  • 公司网站建设需要什么科目上海做核酸最新通知
  • 企业建设网站维护织梦 视频网站源码
  • 长沙做网站哪家公司好搭建个人网站的步骤
  • 小孩做阅读的网站有哪些宁波工业设计公司排名
  • 公司官方网站一般什么公司做网站建设的重要性
  • 医院招聘网站建设和维护做网站如何收益
  • 电子商务网站建设技术有哪些方面网站设计技能
  • wordpress图书馆主题seo综合排名优化
  • 免费建站的平台康展 wordpress
  • 贴吧怎么做网站视频手机网站价格