首页 > 编程语言 > 详细

spring注解方式的事务实现机制

时间:2020-04-02 11:47:56      阅读:68      评论:0      收藏:0      [点我收藏+]

当@Transactional 注解添加到类级别时,表示所有该类的公共方法都配置相同的事务属性信息;
当@Transactional 注解添加到类级别时,方法级别也配置了@Transactional,应用程序会以方法级别的事务属性信息来管理事务,也就是说方法级别的事务属性信息会覆盖类级别的
相关配置信息。

默认情况下,如果事务抛出运行时异常(RuntimeException异常)或者Error,则Spring将回滚事务;除此之外,Spring不会回滚事务;
如果在事务中抛出了其他的异常,期望Spring也能回滚事务,可以用rollbackFor指定自定义的异常子类,例如
@Transactional(propagation = Propagation.REQUIRED,rollbackFor = MyException.class)

@Transactional注解只有应用到public方法,才能进行事务管理。

Spring注解方式的事务实现机制:
应用系统调用@Transactional声明的目标方法时,会默认生成一个AOP代理对象,代理对象根据@Transactional的属性配置信息,决定@Transactional声明的目标方法是否由事务拦截器
TransactionInterceptor来拦截,在TransactionInterceptor拦截时会在目标方法执行之前创建并加入事务,然后根据执行的过程是否出现异常,再有拦截器间接控制数据源DataSource是否要提交
还是回滚事务。

spring注解方式的事务实现机制

原文:https://www.cnblogs.com/afeng-chen/p/12618615.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!