Spring 的事务传播行为
时间: 2024-04-29 16:20:27 浏览: 91
浅谈Spring事务传播行为实战
Spring 的事务传播行为指的是在多个事务方法相互调用时,这些方法之间事务如何进行传播和合并的规则。具体来说,Spring 定义了以下 7 种事务传播行为:
1. PROPAGATION_REQUIRED:如果当前已经存在事务,则加入该事务并在该事务中执行;如果当前没有事务,则开启一个新的事务并在其中执行。
2. PROPAGATION_SUPPORTS:如果当前已经存在事务,则加入该事务并在该事务中执行;如果当前没有事务,则不开启事务,直接执行。
3. PROPAGATION_MANDATORY:如果当前已经存在事务,则加入该事务并在该事务中执行;如果当前没有事务,则抛出异常。
4. PROPAGATION_REQUIRES_NEW:开启一个新的事务并在其中执行;如果当前已经存在事务,则将当前事务挂起。
5. PROPAGATION_NOT_SUPPORTED:不使用事务执行方法;如果当前已经存在事务,则将当前事务挂起。
6. PROPAGATION_NEVER:不允许在事务中执行;如果当前已经存在事务,则抛出异常。
7. PROPAGATION_NESTED:如果当前已经存在事务,则在该事务的嵌套事务中执行;如果当前没有事务,则开启新的事务并在其中执行。在嵌套事务中,如果子事务出现异常,则只回滚子事务;如果父事务出现异常,则回滚所有事务。
阅读全文