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

Springboot整合shiro前,service里的@Cacheable、@Transactional等注解都正常使用。 整合shiro之后,UserRealm类里自动注入的service中的注解失效,比如 UserRealm 中注入了 UserService,RoleService,PermissionService。这些 Service 里的方法上的 @Cacheable 都会失效,不会缓存数据。甚至,UserServiceImpl 里注入了 CategoryService 和 CommentService,他们的方法上的注解也会失效。

原因

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

解决方案

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

发表评论

目前评论:7

  • avatar 帅帅

    哈哈哈哈

  • avatar Test

    测试

  • avatar HELLO

    sfasf

  • avatar dafa

    ddad

  • avatar 评论测试

    评论测试

  • avatar 不加糖de

    test

  • avatar 47897979

    评论测试