Spring事务的七种传播方式
Spring事务的传播机制可以通过修改@Transactional注解的propagation属性来配置,Spring默认使用的是REQUIRED,大体上分为三种。
- 不需要使用事务
-
- PROPAGATION_NEVER:没有事务就正常执行,如果有事务就抛出异常。
-
- PROGATION_NOT_SUPPORTED:没有事务正常执行,如果有事务将事务挂起,然后以非事务方式执行。
- 事务可有可无
-
- PROPAGATION_SUPPORTS:有事务就使用,没有事务就不使用。
- 必须有事务
-
- PROPAGATION_REQUIRES_NEW:有没有事务都新建,如果有将事务挂起。
-
- PROPAGATION_NEXTED:如果没有就新建一个事务,如果有就嵌套进去。
-
- PROPAGATION_REQUIRED:如果没有就新建一个事务,如果有就加入进去。
-
- PROPAGATION__MANDATORY:如果没有就抛出异常,如果有就使用当前事务。