Spring事务失效通常有多种原因,以下是一些常见的导致Spring事务失效的原因:
- 未正确配置事务管理器:在Spring中如果未正确配置事务管理器或者使用了不支持事务的事务管理器,会导致事务失效。
- 未添加@Transactional注解或XML配置:在使用声明式事务时,未在需要事务支持的方法上添加@Transactional注解,或者未在XML配置中配置事务相关内容,都会导致事务失效。
- 异常未被正确捕获和处理:在事务方法中,如果业务逻辑抛出异常未被正确捕获和处理,会导致事务失效,因为Spring默认只对受检查异常进行回滚,对于未受检查异常(RuntimeException及其子类)才会进行回滚。
- 事务传播行为设置错误:如果在调用事务方法时,事务传播行为设置错误,可能会导致事务失效。
- 方法调用问题:如果在同一个类中的方法直接调用,而不是通过代理对象调用,也可能导致事务失效,因为Spring的事务是通过动态代理实现的。
![](/images/780-200-2.jpg)