spring事务中有哪几种传播行为
时间: 2024-08-15 12:06:42 浏览: 42
spring 事务详解
Spring框架提供的事务传播行为有以下五种:
1. **REQUIRES_NEW**:如果当前存在一个事务,则放弃这个事务并创建一个新的事务;如果没有当前事务,则直接开始一个新的事务。
2. **MANDATORY**:如果存在一个当前正在运行的事务,那么在该事务中执行此操作;如果没有当前事务,则抛出异常。
3. **NEVER**:总是创建一个新的事务来执行此操作,如果有当前事务则抛出异常。这是最严格的事务隔离策略。
4. **NOT_SUPPORTED**:如果存在当前事务,则忽略它并创建一个新的事务来执行此操作;如果没有当前事务,则直接开始一个新的事务。
5. **REQUIRES_EXISTING**:如果存在当前正在运行的事务,并且该事务处于只读模式,则继续使用该事务;如果不存在当前事务或者当前事务不是只读模式,则抛出异常。
这些传播行为属性可以在`@TransactionManagementConfigurer`、`@Transactional`注解或者是配置类中设置,允许开发者根据实际需求选择适合的事务管理策略。例如,在需要保证数据一致性的情况下,可能会优先选择`REQUIRES_NEW`或者`REQUIRED`传播行为。
阅读全文