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

avatar 2019年02月06日13:21:15 8 3901 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
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
avatar

发表评论

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

  

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

    学习了

  2. avatar shaw

    spingboot 么?