Spring框架的事务传播机制是用来控制多个事务方法相互调用时事务如何传播的规则。在Spring中,可以通过@Transactional注解或编程式事务管理来配置事务传播行为。
下面是一些常见的事务传播行为:
- REQUIRED:如果存在事务,则加入该事务;如果没有事务,则创建一个新的事务。
- SUPPORTS:如果存在事务,则加入该事务;如果没有事务,则以非事务的方式执行
- MANDATORY:必须在一个已有的事务中执行,否则抛出异常。
- REQUIRES_NEW:创建一个新的事务,如果当前存在事务,则将当前事务挂起。
- NOT_SUPPORTED:以非事务方式执行操作,如果存在事务,则将当前事务挂起。
- NEVER:以非事务方式执行操作,如果当前存在事务,则抛出异常。
- NESTED:如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则表现类似于REQUIRED。