BigHanson 2018-05-18 09:11 采纳率: 40%
浏览 2663
已结题

springBoot shiro 中 realm中注入service 使事务失效问题。

springBoot shiro 中 realm中注入service 使得 service的事务失效,如何解决。

在shiro的userRealm中 注入service时,导致注入的service没有事务(不会创建代理对象)。
图片说明

图片说明

正常有事务的service 都应该是CGLI代理对象的。

应该怎么解决呢.

除了把 service改为dao,我需要事务

  • 写回答

2条回答 默认 最新

  • 李逍遥的代码 2018-05-18 09:40
    关注

    尝遍了网上所有方法,有的说spring-mvc.xml 和application-context..xml 扫描包原因, 有的说spring aop和事务先后顺序问题,还有aop 使用cglib 的问题,还有数据库表引擎的问题等等。。。。 还是一样,突然想到了再 单元测试环境下试试 事务效果,

    一开始单元测试类配置如下

    把之前事务不生效的service 加上,一运行,居然可以啦!

    还是很疑惑,为什么web容器下就不行呢, 继续在网上找答案,也没找到相关的,

    忽然想到web容器和junit 环境配置的不通,就把web容器改加载的配置文件一个个 加上再运行, 后来发现了再加上

    classpath*:spring-mvc.xml
    事务也可以生效, 排除这两个文件的问题, 最后找到 shiro的配置文件 加上去
    发现事务又不行了, 这时喜出望外,确定都是 shiro惹的祸! 网上一查, 原来是自定义的ShiroDbRealm 里面注入的service 引起的

    后来把 ShiroDbRealm里面注入 service改为注入dao,问题解决!

    评论

报告相同问题?

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题