【121、说一下 Spring 事务传播机制】

151 阅读2分钟

Spring 事务传播机制指的是在一个多个事务操作嵌套执行时,事务如何传播和管理的规则。Spring 支持多种事务传播行为,通过在事务注解中指定不同的传播行为来控制。

下面是 Spring 支持的事务传播机制:

  1. REQUIRED:默认的传播机制,如果当前存在事务,则加入该事务,如果不存在,则开启一个新的事务。该传播机制可以保证多个操作在同一个事务中执行。
  2. SUPPORTS:如果当前存在事务,则加入该事务,如果不存在,则以非事务方式执行。该传播机制可以用于在一个事务范围内进行操作,也可以在无需事务的情况下执行。
  3. MANDATORY:必须在事务中执行,如果当前没有事务,则抛出异常。
  4. REQUIRES_NEW:无论当前是否存在事务,都会开启一个新的事务执行。如果存在事务,则当前事务会挂起,新的事务执行完毕后恢复之前的事务。
  5. NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,则将当前事务挂起。
  6. NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
  7. NESTED:如果当前存在事务,则在事务中嵌套一个子事务,如果不存在,则开启一个新的事务。子事务独立于父事务,具有自己的提交和回滚。如果父事务提交,则会提交子事务;如果父事务回滚,则会回滚所有的子事务。

通过使用不同的事务传播机制,可以使事务在不同的场景下按照不同的方式传播和管理,以实现更灵活和精细的事务控制。