SpringCache在部分Service中失效问题

搭建框架中想使用SpringCache提升部分查询数据的效率发现部分Service使用@Cacheable注解无效,发了两个晚上各种测试最终定位到失效的Service都与权限相关,尝试一下搜索Shiro+@Cacheable,果然找到了答案。

问题原因:由于Shiro框架初始化比Spring框架的某些部件早,导致使用@Autowire注入Shiro框架的某些类不能被Spring正确初始化。

解决方法:使用@Autowire+@Lazy注解,设置注入到Shiro框架的Bean延时加载(即在第一次使用的时候加载)

但是后续发现在ShiroConfig的时候初始化系统的所有权限使用以上方法并不能解决问题,

将ShiroConfig中使用的权限Service才去@Bean生成一个权限Service对象

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容