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

avatar 2019年2月6日13:21:15 1 337 views

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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:1   其中:访客  1   博主  0

    • avatar shaw 0

      spingboot 么?