spring事务源码剖析(注解方式启动spring)

源于蚂蚁课堂的学习,点击这里查看

1.源码流程

 

 

 

2.总结 

1.通过注解EnableTransactionManagement开启事务
2.@EnableTransactionManagement底层是将TransactionManagementConfigurationSelector注册至IOC
3.TransactionManagementConfigurationSelector是个选择器,默认将ProxyTransactionManagementConfiguration注册至IOC
4.ProxyTransactionManagementConfiguration中TransactionInterceptor注册至IOC
5.TransactionInterceptor是Advice的一个子类,也属于一种通知,按照AOP原理,执行目标方法进入其invoke方法
6.invoke方法中底层手动设置事务,执行目标方法,有异常就回滚事务,没有则提交事务

3.spring事务失效的原因

通过源码剖析可看出,spring底层是手动捕获目标方法抛出的异常,从而进行事务回滚到达一致性。若在目标方法中自行捕获异常
而未抛出,就会导致spring事务正常commit,从而失效
原创文章 148 获赞 258 访问量 11万+

猜你喜欢

转载自blog.csdn.net/yxh13521338301/article/details/105215002
今日推荐