@Transactional事务处理
Spring事务传播行为
Spring事务的传播行为
事务隔离级别—mysql
传播行为 属于 Spring 中A方法调用B方法
## `PROPAGATION`
required: 必须的
Supports…支持的
mandatory …强制的
REQUIRES_NEW…需要新的
supported:支持
Never从不
1.REQUIRED–默认传播行为 如果存在一个事务,则支持当前事务,如果没有事务则开启一个新的事务
如果当前的线程存在事务,则加入到当前线程的事务,如果当前线程没有事务则从新的创建一个新的事务
2 Supports 如果存在一个事物,支持当前事务,如果没有事务,则非事务的执行,.
当前线程中如果存在事务,则加入该线程事务执行,如果该线程没有存在事务则以非事务的形式执行
3.MANDATORY 如果已经存在一个事务,支持当前事务,如果没有一个活动的事务,则抛出异常
如果当前线程中存在一个事务,当我们A 调用B 的方法的时候 B 不回抛出异常 如果当前线程中不存在事务,直接访问B方法 就会抛出异常
4.REQUIRES_NEW 总是开启一个新的事务,如果一个事务已经存在,则将这个存在的事务挂起
当A调用B方法的时候, A已经创建了一个事务,进入到B方法的时候,则会创建一个新的事务为事务B
5.NOT_SUPPORTED 总是非实物的执行,并挂起任何存在的事务
当前线程不管是否存在事务,则以非事务的形式执行
6.NEVER 总是非事务的执行,如果存在一个活动事务,则抛出异常
通俗易懂方式:
A调用B方法:
B方法上REQUIRED
如果直接访问B方法的话,就会创建一个新的事务
如果方法A调用B方法,则B会加入到当前A的事务
本文来源面相薪水编程,由javajgs_com转载发布,观点不代表Java架构师必看的立场,转载请标明来源出处