Spring事务什么时候会失效

Spring事务什么时候会失效?

Spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不起作用了!常见情况有如下几种

1、发生自调用,类里面使用this调用本类的方法(this通常省略),此时这个this对象不是代理类,而是 UserService对象本身!

解决方法很简单,让那个this变成UserService的代理类即可!

2、方法不是public的


@Transactional 只能用于public 的方法上,否则事务不会失效,如果要用在非public 方法上,可以开启 Aspectj 代理模式。


3、数据库不支持事务

4、没有被spring管理

5、异常被吃掉,事务不会回滚(或者抛出的异常没有被定义,默认为RuntimeException)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容