spring 事务传播行为

https://blog.csdn.net/weixin_39625809/article/details/80707695

什么叫事务传播行为?听起来挺高端的,其实很简单。 
即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。

事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这个事务方法应该如何进行。 
例如:methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的。

Spring定义了七种传播行为:

这里写图片描述

现在来看看传播行为

1、PROPAGATION_REQUIRED

如果存在一个事务,则支持当前事务。如果没有事务则开启一个新的事务。 
可以把事务想像成一个胶囊,在这个场景下方法B用的是方法A产生的胶囊(事务)。 
这里写图片描述

原文地址:https://www.cnblogs.com/newlangwen/p/8289354.html