代码演示
不加事务注解会失效
报错之后,还是插入了数据库中
private修饰的方法也会失效
在本类调用其他方法会失效
在aa重写接口的方法里面没有加注解,在bb的方法里面加了注解
这时候也会插入数据库,导致事务失效,因为本类的bb方法没有经过Aop的动态代理
使用原始对象引用,没有经过事务拦截器去开启事务,所以事务失效
事务的传播行为,设置的不对也会失效
这样也会插入到数据库中 导致事务失效
加了try catch也会事务失效
没有加@Service注解的类也会事务失效
因为启动就报错了,他没有交给ioc容器去管理
多线程环境下也会事务失效
总结
1.private方法不支持事务,必须public;
2.不加事务注解的方法会失效;
3.使用了try catch会失效;
4.顶层方法不加事务注解,使用this调用本类其他加事务注解的方法会失效,因为没有被aop代理;
5.业务代码在线程里面会失效;
6.事务的传播行为设置的不对,也会失效
7.类上没有加@Service注解会失效,因为启动项目就报错了