当前位置:   article > 正文

SpringBoot中service事务失效,service异常但事务不回滚,使用shiro在AuthorizingRealm子类中注入service导致其他service事务失效

SpringBoot中service事务失效,service异常但事务不回滚,使用shiro在AuthorizingRealm子类中注入service导致其他service事务失效

最近测试接口,发现很多service的事务都没有生效.检查了事务注解,发现并不是网上常见的service相互注入和调用方法引起的问题.

针对其中一个方法进行了多次测试,发现该方法所在service虽然在其他地方被注入,但是该方法并没有被其他service调用过.更让人不解的是屏蔽掉该service所在的其中一个注入,事务就生效了.

参考了网上的一些常见解决办法,发现都没能解决.山重水复疑无路,柳暗花明又一村,最后发现service事务失效的问题,是很少有人直接提到在AuthorizingRealm子类中注入service导致整个项目其他service事务失效的问题.该问题有两种解决方案.一种是在realm中注入service时,加上@lazy注解;另一种是不在realm注入service,直接注入mapper.亲测第二种解决了问题.

发表此文以防再犯,也仅以此文提供给后面遇到的人加快解决问题的速度.

这两篇文章都十分详细的描述了导致问题的原因,还有问题排查的过程,贴在这里以供大家参考:

SpringBoot+Shiro引起事务失效、错误原因、解决方法

记一次事务失效的问题排查记录

下面也贴一些常见service事务不生效的情况:

service层@Transactional事务控制使用以及注意

spring 事务管理——回滚之service层(事务控制层)代码互调

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/224681
推荐阅读
相关标签
  

闽ICP备14008679号