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事务大致原理

原文地址:https://www.cnblogs.com/chaojibaidu/p/14984478.html