Spring事务传播行为
Posted 炎泽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring事务传播行为相关的知识,希望对你有一定的参考价值。
什么是Spring事务传播行为?
事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时,事务如何传播。
假设ServiceA 中方法A()调用 ServiceB中方法 B()(B被事务修饰),那么会有两种情况:
方法A有事务,方法B有事务
方法A没有事务,方法B有事务
Spring中的事务传播行为有7种,默认为 Propagation.REQUIRED:
1. Propagation.REQUIRED
如果当前存在事务,则加入该事务,如果当前不存在事务,则创建一个新的事务。
2. Propagation.SUPPORTS
如果当前存在事务,则加入该事务;如果当前不存在事务,则以非事务的方式继续运行。
3. Propagation.MANDATORY
如果当前存在事务,则加入该事务;如果当前不存在事务,则抛出异常。
4. Propagation.REQUIRES_NEW
重新创建一个新的事务,如果当前存在事务,暂停当前的事务。
5. Propagation.NOT_SUPPORTED
以非事务的方式运行,如果当前存在事务,暂停当前的事务。
6. Propagation.NEVER
以非事务的方式运行,如果当前存在事务,则抛出异常。
7. Propagation.NESTED
和 Propagation.REQUIRED 效果一样。
备注:
当前,可理解为上例中的A方法。
详情可见:https://blog.csdn.net/pml18710973036/article/details/58607148
以上是关于Spring事务传播行为的主要内容,如果未能解决你的问题,请参考以下文章
Spring框架学习笔记 --- [Spring的事务传播行为]
Spring事务看这一篇就够了!!(Spring事务特征+Spring事务管理+实现+Spring七种事务传播行为+集成MyBatis)