SpringBoot整合Shiro使用Ehcache等缓存无效问题

【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

前言

  1. 整合有缓存、事务的spring boot项目一切正常。
  2. 在该项目上整合shiro安全框架,发现部分类的缓存Cache不能正常使用。
  3. 然后发现该类的注解基本失效,包括事务Transaction注解。事务不能正常运行。

分析

  1. 注解失效的类,都是在shiro框架中(UserRealm)使用过@Autowire注入的类。
  2. 基本确定是shiro框架与spring框架的BeanFactory有所冲突,导致注入shiro框架的类不能被spring正确初始化。

以上参考

https://blog.csdn.net/elonpage/article/details/78965176


我的解决方法

1.比如使用Shiro时我们自定义了Realm,并在其中使用了

@Autowired
private UserService userService;

2.现在修改为

@Autowired
@Lazy
private UserService userService;

即可,还有方法,比如ApplicationContextRegister.getBean()手动注入Bean。

延伸阅读:史上最全的Spring Boot Cache使用与整合

版权声明

【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】

原文地址:https://www.cnblogs.com/onblog/p/13050363.html