springboot+springcache+shiro+Redis整合时@Cacheable@Transactional等注解失效的问题

Posted 斌凯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot+springcache+shiro+Redis整合时@Cacheable@Transactional等注解失效的问题相关的知识,希望对你有一定的参考价值。

问题描述:

 1.springboot整合shiro之前@Cacheable、@Transactional等注解都可以正常使用;

 2.整合了shiro之后,自定义MyShiroRealm中注入RoleUserService时 RolerUservice中的@Cacheable、@Transaction都失效了。

   MyShiroRealm代码:

 

RoleUserService代码:

 原因:shiro和cache在引用service实例顺序问题,shiro引入应在cache后,

             shiro配置文件中引用realm属性bean中引用的service采用延迟加载策略。

解决方法:在MyShiroRealm注入RoleUserService时@Lazy注解(采用延迟加载策略)

MyShiroRealm改进后代码:

 

 



以上是关于springboot+springcache+shiro+Redis整合时@Cacheable@Transactional等注解失效的问题的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot整合SpringCache详解

使用springboot内置的缓存机制springcache

springboot+springcache+shiro+Redis整合时@Cacheable@Transactional等注解失效的问题

重学SpringBoot系列之Spring cache详解

springcache清除过期缓存

使用 SpringCache 简化缓存代码实现