一、事务传播行为是什么? 事务传播行为(propagation behavior )是指当另一个事务方法调用一个事务方法时,事务方法应如何执行。
例如,当methodA方法调用methodB方法时,methodB是继续在被调用的methodA事务中执行,还是为自己打开并执行新事务,都是在methodB中的
二、事务的7种传播行为Spring在事务定义界面中规定了7种事务传播行为。 事务传播行为是Spring框架特有的事务扩展。 这是Spring提供的强大工具箱,使用事务传播行为可以为开发工作提供很多便利。
七种事务传播行为如下:
1.PROPAGATION_REQUIRED
如果当前没有事务,则创建新事务;如果当前有事务,则加入该事务。 这是最常见的选择,也是Spring的默认事务传播行为。
2.PROPAGATION_SUPPORTS
支持当前事务,如果当前事务存在,则参与该事务;如果当前事务不存在,则在非事务中执行。
3.PROPAGATION_MANDATORY
支持当前事务,如果当前事务存在,则参与该事务;如果当前事务不存在,则抛出异常。
4.PROPAGATION_REQUIRES_NEW
创建新事务。 无论当前是否存在事务,都创建新事务。
5.PROPAGATION_NOT_SUPPORTED
以事务以外的方式执行操作,如果当前事务存在,则挂起当前事务。
6.PROPAGATION_NEVER
在事务以外执行,如果当前存在事务,则抛出异常。
7.PROPAGATION_NESTED
如果事务当前存在,则在嵌套事务中执行。 如果当前没有事务,则根据REQUIRED属性执行。