spring源码相关第五篇----------------------------spring tx实现原理源码解读

事务执行时通过创建一个aop代理对象,加上一些拦截器执行链实现的。

 

 此为事务配置相关的重要信息

 

 

 而使用的data是spring jdbc提供的,这里也可以配置成druid,c3p0等等数据库连接池。

 

 如图所示,如果有aop参与的类,将会创建的bean对象是一个代理对象,而如果没有aop参与的创建的bean对象直接就是MyServiceImpl的实例对象

 

 

 

---------------------注意这里创建一个MyServiceImpl的代理对象操作,之后将这里代理对象放入到对应的bean缓存中,到此spring事务相关的代理对象创建完毕,下面开始spring事务调用讲解

 

 

 

 最终调用的时候,会走到这个方法里面,实现对于事务的处理操作,完成整个事务的处理过程。

 

 

 

在方法执行之前执行aop前置通知方法

 

 

如果没有后置将会走到这个方法,详细请看aop实现原理相关博客

 

 

最终会走到我们的事务处理的相关方法,这里会完成事务的提交与回滚操作,以及事务隔离级别,spring的事务传播行为的操作,实现spring事务的功能。

 

 

附加信息(下面为spring事务处理大致流程图)

 

 

 

 

到此spring 事务相关原理解析完毕

 

相关博客参考

 

https://my.oschina.net/mengyuankan/blog/3003783   讲spring事务隔离别与传播行为源码相关,较为详细

https://www.cnblogs.com/rouqinglangzi/p/12764926.html 讲spring事务大致原理

 

posted on 2021-07-08 08:23  The羿  阅读(117)  评论(0编辑  收藏  举报

导航