美文网首页Spring源码分析
2019-06-26 spring 事务

2019-06-26 spring 事务

作者: longtaiping | 来源:发表于2019-07-07 23:29 被阅读0次

要在项目中开启spring的事务的功能,会使用到@EnableTranstationMannager 开启spring 事务的功能

到这里开启spring事务相关的需要用到的组件白手动添加到容器中:

然后我们来看看spring 事务功能开启需要视同的那个后置处理器对象:InfrastructureAdvisorAutoProxyCreator

这个时候和springAOP的实现基本上是一样的;查找@Tranation相关的注解然后生成代理对象:

到了这一步 当前创建的的这个对象在穿件代理对象的时候需要使用到的事务增强器都选出来了

接下来就是事务的调用:

1.org.springframework.aop.framework.JdkDynamicAopProxy#invoke();

2.

重新执行ReflectiveMethodInvocation 中的 proceed()方法,执行责任链.

这里这里就是一个spring事务的调用的过程;

下面重点分析,spring事务的开启和执行:

判断当前线程时候存在事务,通过ConnectionHolder 不为空并且事务已经激活了这个时候当前线程就存在事务

如果存在嵌套事务的时候:会走下面的逻辑

通过不同的事务传播机制执行不同的逻辑:

下面以Requires_new为例:

当内层事务处理之后,回到TransactionStatus对象中的挂起的事务设置为当前事务

相关文章

  • 2019-06-26 spring 事务

    要在项目中开启spring的事务的功能,会使用到@EnableTranstationMannager 开启spri...

  • 关于事务的思考

    Spring对于事务的支持 Spring事务接口 Spring事务管理器 Spring并不直接管理事务,而是提供多...

  • Spring事务

    Spring 事务 分类 Spring可以支持编程式事务和声明式事务。 编程式事务 实现 Spring使用事务管理...

  • Spring中实现事务方式

    Spring 中实现事务的方式 Spring 并不直接支持事务,只有当数据库支持事务时,Spring 才支持事务,...

  • Spring事务的传播特性引发的一场血案

    Spring事务的传播特性是对于Spring事务管理的一项特殊配置;Spring事务基于Spring AOP特性,...

  • Spring 事务实现分析

    1. Spring 事务简介 Spring 本身并不实现事务,Spring事务 的本质 还是 底层数据库 对事务的...

  • spring04

    Spring JdbcTemplate学习 Spring 声明式事务 xml配置实现 Spring 声明式事务 注...

  • 程序员之Spring

    1. Spring事务 spring的事务实现原理Spring事务将connection放入到当前线程的threa...

  • 面前温习

    Spring事务传播特性的浅析——事务方法嵌套调用的迷茫 解惑 spring 嵌套事务

  • 分布式事务(2)Spring事务

    2.1 Spring事务原理 Spring支持编程式事务和声明式事务。编程式事务就是用个事务类Transactio...

网友评论

    本文标题:2019-06-26 spring 事务

    本文链接:https://www.haomeiwen.com/subject/gilkcctx.html