搭建框架中想使用SpringCache提升部分查詢數(shù)據(jù)的效率發(fā)現(xiàn)部分Service使用@Cacheable注解無效,發(fā)了兩個晚上各種測試最終定位到失效的Service都與權限相關,嘗試一下搜索Shiro+@Cacheable杯聚,果然找到了答案蕾管。
問題原因:由于Shiro框架初始化比Spring框架的某些部件早褪尝,導致使用@Autowire注入Shiro框架的某些類不能被Spring正確初始化睹栖。
解決方法:使用@Autowire+@Lazy注解照宝,設置注入到Shiro框架的Bean延時加載(即在第一次使用的時候加載)
但是后續(xù)發(fā)現(xiàn)在ShiroConfig的時候初始化系統(tǒng)的所有權限使用以上方法并不能解決問題呻顽,
將ShiroConfig中使用的權限Service才去@Bean生成一個權限Service對象