事务传播行为:编写程序时使用较少,但属于面试高频问题

事务传播行为的七种 类型:

propagation_required(默认)-->当类中方法执行时,如果没有事务,则新建一个事务,如果已经存在一个事务,需加入到这个事务中。(这是最常见的用法)

这个传播类型的问题:当一个方法中存在两个及两个以上,同样使用此传播行为的方法时,根据其“已存在事务,则后续开启的事务自动加入到原事务中”的特点。会造成多个事务变成一个“事务”,所以当其中一个方法执行失败时,其它在本次事务中的数据,会一并回滚清除。(无法做到多个事务之间互不干扰的情况)

如何让事务之间独立执行,互不干扰呢?


栗子:

如果没有事务,则新建一个事务,如果已经存在一个事务,需加入到这个事务中。
https://github.com/MingCaiXiong/spring-learn/commit/027f58c93641f9273d6245b477d22409e8dbf200