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

1 篇文章 0 订阅
1 篇文章 0 订阅

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

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

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

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

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

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

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

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

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

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值