1. 程式人生 > >Spring Boot 整合Shiro和Redis關於@Cacheble註解無效的解決方法

Spring Boot 整合Shiro和Redis關於@Cacheble註解無效的解決方法

在我做專案的時候,在Spring Boot 中對Shiro和Redis進行了整合,但實際發現Spring boot中Shiro和Redis整合後,Spring的@cacheble註解無效。

出現的情況如下:

  1. 如果只是Spring boot和Redis整合,那麼@cacheble可用,會把快取資料寫入Redis。
  2. 如果只是Spring boot和Shiro整合,然後用Spring cache抽象出cachemanager,作為Shiro的快取。控制檯未報錯,Shiro的認證資訊會存入Redis,但出現@cacheble註解無效,即@Cacheble註解的方法的返回值未存入Redis。如果果將Shiro的@Configuration註解去掉,即不用Shiro,@Cacheble可用。

解決方法如下:
這裡寫圖片描述

在自定義Realm中注入的Service宣告中加入@Lazy註解即可解決問題。