带你读懂Spring 事务——事务的传播机制
事务传播
- 每个方法都加了事务注解,多个事务方法相互调用时,事务如何在这些方法间传播。
7种
- REQUIRED(Spring默认的事务传播类型),如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务
- SUPPORTS,当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行
- MANDATORY(强制用事务),当前存在事务,则加入当前事务,如果当前事务不存在,则抛出异常。
- REQUIRES_NEW,创建一个新事务,如果存在当前事务,则挂起该事务(用新的事物)。不论当前是否存在事务,总是会新建一个事务。
/**
* Create a new transaction, and suspend the current transaction if one exists.
...
*/
REQUIRES_NEW(TransactionDefinition.PROPAGATION_REQUIRES_NEW),

image.png
- NOT_SUPPORTED,始终以非事务方式执行,如果当前存在事务,则挂起当前事务
- NEVER,不使用事务,如果当前事务存在,则抛出异常
- NESTED(内嵌),如果当前事务存在,则在嵌套事务中执行,否则REQUIRED的操作一样(开启一个事务)
ref
本文标题:带你读懂Spring 事务——事务的传播机制
本文链接:https://www.haomeiwen.com/subject/ttsoodtx.html
网友评论