SpringBoot集成Shiro+Redis后,@Cableable注解失效

avatar 2019年02月06日13:21:15 8 4393 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此
Springboot整合shiro前,service里的@Cacheable、@Transactional等注解都正常使用。
整合shiro之后,UserRealm类里自动注入的service中的注解失效,比如 UserRealm 中注入了 UserService,RoleService,PermissionService。这些 Service 里的方法上的 @Cacheable 都会失效,不会缓存数据。甚至,UserServiceImpl 里注入了 CategoryService 和 CommentService,他们的方法上的注解也会失效。

原因

我的理解是:因为当我们项目启动时,我们的 Realm 很早就初始化,而其依赖的 UserService 等依赖(包括它的实现里的依赖)都很早就初始化了,在设置缓存之前。

解决方案

给 Realm 里的需要注入的 Bean 加上 @Lazy 注解(@Order 无效)
如图

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:2   待审核评论数:0
  1. avatar hermit

    学习了

  2. avatar shaw

    spingboot 么?