spring事物失效的场景:
1.注解@Transactionalo配置的方法为非public的方法
2.注解@Transactionalo所在类为非Spring管理的
3. 注解@Transactional所在类中,注解修饰的方法被内部方法调用
4.业务代码抛出的异常类型非RuntimeException,事务失效;
5.业务代码中存在异常时,使用try…catch…语句块捕获,而catch语句块没有throw new RuntimeExecption异常;(最难被排查到问题且容易忽略)
6. 注解@Transactional中Propagation属性值设置错误即Propagation.NOT_SUPPORTED(一般不会设置此种传播机制)
事物的传播行为:(@Transactional 注释的默认传播模式是 REQUIRED)