当前位置: 代码迷 >> 综合 >> Spring___7种事务的传播行为(借鉴大佬,写出自己的理解,通俗易懂)
  详细解决方案

Spring___7种事务的传播行为(借鉴大佬,写出自己的理解,通俗易懂)

热度:107   发布时间:2023-11-14 19:59:22.0

在讲事务的7种传播行为前可以分享一个个人亲身的小经历,我大三拿到学位证以及成绩合格后和学校申请大四离校外出实习;有屎以来第一次面试就是一家大厂,当时初生牛犊不怕虎,也是不知天高地厚,面试官因为某种原因来的是架构师和项目经理,他们的第一问题就是问我事务的传播行为以及事务的隔离级别,很可惜那家大厂我很向往,但与我无缘;搞技术这行,菜就是原罪,我菜的真实,所以每次谈到事务就让我有所回忆,所以请你打死也要记住这玩意,不要管别人说什么工作中用处大不大,别只局限于眼前的苟且。

进入正题:
一、对传播的初步认识
事务的传播行为,既然是传播行为,那么就要进行传播这个动作,传播就是至少需要两个的,单个个体是不存在传播的。
例如:

 ServiceA {   void methodA() {ServiceB.methodB();}
} 
methodA事务方法调用methodB事务方法时,methodB是继续在调用者methodA的事务中运行呢,还是为自己开启一个新事务运行,这就是由methodB的事务传播行为决定的

二、7种传播行为

-1、PROPAGATION_REQUIRED:支持当前事务,假设当前没有事务。就新建一个事务。-2、PROPAGATION_SUPPORTS:支持当前事务,假设当前没有事务,就以非事务方式运行。-3、PROPAGATION_MANDATORY:支持当前事务,假设当前没有事务,就抛出异常。-4、PROP
  相关解决方案