spring事務什么時候會失效?


spring事務的原理是AOP,進行了切面增強,那么失效的根本原因時這個AOP不起作用了!常見情況如下集中:
1、發生自調用,類里面使用this調用本類的方法(this通常省略),此時這個this不是代理對象,而是UserService類本身,所以失效。
解決辦法很簡單,讓this變成UserService的代理類即可。(即從spring的IOC容器中取出對象)
2、方法不是public的

@Transaction只能用於public的方法上,否則事務會失效,如果要用在非public上,可以開啟AspectJ代理模式

3、數據庫不支持事務 (Mysql的Myisam引擎)
4、沒有被spring管理
5、異常被吃掉,事務不會回滾。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM