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

网站建设与管理题目做营销网站

网站建设与管理题目,做营销网站,建设香帅摩托车官网,快速建站哪个平台好一、Spring的事务传播机制 Spring的事务传播机制是Spring框架中最核心的机制之一#xff0c;它能够灵活地控制多个事务方法的执行顺序、提交或回滚等行为。在Spring中#xff0c;事务是通过TxManager来管理的#xff0c;TxManager是一个接口#xff0c;提供了开启、提交、…一、Spring的事务传播机制 Spring的事务传播机制是Spring框架中最核心的机制之一它能够灵活地控制多个事务方法的执行顺序、提交或回滚等行为。在Spring中事务是通过TxManager来管理的TxManager是一个接口提供了开启、提交、回滚、检查和暂停某个事务等多种方法。Spring框架本身不提供事务管理的实现而是通过和其他事务管理器进行整合来完成。常见的事务管理器有JDBC、Hibernate、JPA和Atomikos等。 Spring支持以下7种事务传播行为 PROPAGATION_REQUIRED如果当前存在事务则加入该事务否则新建事务并在方法执行结束后提交事务。PROPAGATION_SUPPORTS如果当前存在事务则加入该事务否则不开启事务。PROPAGATION_MANDATORY如果当前存在事务则加入该事务否则抛出异常。PROPAGATION_REQUIRES_NEW不管当前是否存在事务都新建一个事务并在方法执行结束后提交事务。PROPAGATION_NOT_SUPPORTED不管当前是否存在事务都不开启事务。PROPAGATION_NEVER如果当前存在事务则抛出异常否则不开启事务。PROPAGATION_NESTED如果当前存在事务则在已有事务中嵌套一个事务否则新建事务并在方法执行结束后提交事务。 以上这些传播行为都可以通过Spring中的TransactionDefinition接口进行定义和设置。 二、Spring的事务传播机制的实现原理 在Spring框架内部事务的传播机制是通过ThreadLocal对象来实现的。ThreadLocal是一个线程本地变量它可以在当前线程中存储某个值并且这个值可以被当前线程的任何方法所共享和修改。在Spring中我们可以通过TransactionSynchronizationManager类来管理ThreadLocal变量。 在Spring中开启事务的方法通常被称为事务模板方法。事务模板方法负责创建事务并且将当前线程的状态保存在ThreadLocal变量中。在执行业务方法前Spring事务管理器会检查当前线程的状态如果当前线程已经存在事务则直接使用该事务否则创建一个新事务。 在Spring中每个事务方法都是由一个或多个拦截器组成的。事务拦截器负责拦截业务方法执行前后的各种事件并且在恰当的时候执行提交或回滚事务等操作。在Spring中我们可以通过TransactionInterceptor类来实现事务拦截器。 在Spring的事务传播机制中每个事务方法都是独立的它们的事务行为是相互独立的。在事务方法内部调用其他事务方法时Spring会根据所设置的传播行为来决定是否开启新事务或者将当前事务合并到已有事务中。 Spring的事务传播机制是基于AOP实现的它首先在调用业务方法之前开启事务并将事务状态保存在ThreadLocal变量中然后执行业务方法最后在业务方法执行结束后根据事务状态来决定是提交还是回滚事务。 三、Spring的事务传播机制的源代码实现 接下来我们将以Spring 5.3.0版本为例通过源代码的方式来分析Spring的事务传播机制的实现细节。在此之前我们需要先了解Spring的事务管理API和核心类的结构。 Spring的事务管理API Spring的事务管理API主要包括以下三个接口 PlatformTransactionManager是事务管理器的顶层接口它定义了使用事务的基本方法如开启、提交、回滚、暂停、恢复等。所有的事务管理器都需要实现PlatformTransactionManager接口。 TransactionDefinition是事务定义接口它定义了一个事务的属性如事务的隔离级别、传播行为、超时时间和只读属性等。所有的事务管理器必须支持TransactionDefinition接口的所有属性。 TransactionStatus是事务状态接口它定义了事务的当前状态例如是否已经开始、是否已经提交、是否已经回滚等。所有的事务管理器必须支持TransactionStatus接口的所有状态。 Spring的核心类 Spring的事务传播机制的实现主要涉及以下几个核心类 TransactionSynchronizationManager是Spring事务同步管理器它负责处理同步回调和资源清理以及管理线程本地变量资源。 在Spring的事务传播机制中TransactionSynchronizationManager使用ThreadLocal来保存当前线程的事务状态和事务资源。 TransactionAspectSupport是Spring事务切面支持类它是Spring事务传播机制的核心实现类。TransactionAspectSupport类继承自AspectJAfterAdvice类实现了org.aopalliance.intercept.MethodInterceptor接口它可以作为一个通用的事务拦截器来拦截任何一个Spring Bean中的方法调用并根据所设置的传播行为来决定是否开启新事务或者将当前事务合并到已有事务中。 AbstractPlatformTransactionManager是PlatformTransactionManager接口的抽象实现类它提供了大部分的PlatformTransactionManager接口方法的默认实现具体实现细节由其子类来完成。 AbstractTransactionStatus是TransactionStatus接口的抽象实现类它提供了大部分的TransactionStatus接口方法的默认实现具体实现细节由其子类来完成。
http://www.hkea.cn/news/14531941/

相关文章:

  • 外贸公司英文网站建设代理网页游戏需要什么条件啊
  • 广州网站营销seo费用做网站专题怎样添加微博
  • 公司网站建设企业网站深圳做网站排名哪家专业
  • 网站流量怎么挣钱阿里巴巴做网站的
  • 网站更换名称需要重新备案吗武功做网站
  • 中国大型网站灰蓝 网站模板
  • 第一次和别人女友做网站安全邮箱注册网站
  • 网站在百度无法验证码怎么办啊如何自创游戏
  • 地方网站怎么做推广erp系统页面
  • 网站建设公司 枫子伽叩罗伯特清崎说的网络营销是什么
  • 设计网站定制公司江门特色
  • 网站建设的总结100字网站开发设计概述
  • 建设工程网站新专家入库wordpress数据库清理sql
  • 艺术创意设计烟台seo推广优化
  • 怎么自助建站价格合理的网站建设
  • 设计师招聘网站有哪些江苏环泰建设有限公司网站
  • 广州做大型网站建设网页编辑器哪个好
  • 用腾讯云做淘宝客购物网站视频东阳网站制作
  • 怎么开网站深圳网站建设公司联
  • 电子商务网站建设教程东莞市seo网络推广企业
  • 延安市建设工程交易中心网站北京的建设网站公司
  • 建设部勘察设计网站网站模板价格
  • 昆山周市建设局网站网络营销推广的手段
  • 菏泽市住房和城乡建设局网站本地生活服务网站怎么做
  • flash如何做网站wordpress 获取文章的分类id
  • 仿站网站建设做我网站
  • 自己做购物网站微信管理系统下载
  • 网站开发后端选择了解做房产广告的网站
  • 怎么用wordpress搭建网站我有服务器和模板怎么做网站
  • 网站开发设计论文昆明网站建设报价