什么是事务传播
如果一个方法上面加了事务注解这个方法就是事务方法.如果一个事务方法被其他方法调用则会涉及到事务传播的问题
外围方法:方法里调用方法,外面的方法就是外围方法
内部方法:就是被调用的方法.
外围方法事务
如果调用者抛出异常则内部方法被nested和required修饰的方法全部回滚
nested是嵌套事务,相当于子事务,外部异常它也会回滚
required会加入外围事务,简单理解就是它和调用者用同一个事务,只要一个抛出异常就都会回滚.
nested 内部异常不会影响外围事务,因为它是嵌套事务
required_new 内部异常也不会影响外围事务,因为它是一个新的事务,外围异常跟它无关,它异常与外围事务也无关.
如果调用者没有加事务,则内部事务不会受到影响,独立执行,互不影响.
required 是加入事务,如果外围有事务则加入即和外围共用一个事务,如果外围没有则自己新建一个事务.
参考博客
事务传播
spring事务管理