赞
踩
最近测试接口,发现很多service的事务都没有生效.检查了事务注解,发现并不是网上常见的service相互注入和调用方法引起的问题.
针对其中一个方法进行了多次测试,发现该方法所在service虽然在其他地方被注入,但是该方法并没有被其他service调用过.更让人不解的是屏蔽掉该service所在的其中一个注入,事务就生效了.
参考了网上的一些常见解决办法,发现都没能解决.山重水复疑无路,柳暗花明又一村,最后发现service事务失效的问题,是很少有人直接提到在AuthorizingRealm子类中注入service导致整个项目其他service事务失效的问题.该问题有两种解决方案.一种是在realm中注入service时,加上@lazy注解;另一种是不在realm注入service,直接注入mapper.亲测第二种解决了问题.
发表此文以防再犯,也仅以此文提供给后面遇到的人加快解决问题的速度.
这两篇文章都十分详细的描述了导致问题的原因,还有问题排查的过程,贴在这里以供大家参考:
SpringBoot+Shiro引起事务失效、错误原因、解决方法
下面也贴一些常见service事务不生效的情况:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。