摘要:發(fā)現(xiàn)問題在一次項目實踐中有實現(xiàn)多級緩存其中有已經(jīng)包括了的,本以為開啟的緩存是一件很簡單的事情只需要在啟動類上加上注解就會啟動緩存管理了,但是問題出現(xiàn)了。
微信公眾號:一個優(yōu)秀的廢人。如有問題,請后臺留言,反正我也不會聽。前言
來自不愿意透露姓名的小師弟的投稿。這篇主要講了,項目中配置了多緩存遇到的坑,以及解決辦法。
發(fā)現(xiàn)問題在一次項目實踐中有實現(xiàn)多級緩存其中有已經(jīng)包括了 Shiro 的 Cache ,本以為開啟 redis 的緩存是一件很簡單的事情只需要在啟動類上加上 @EnableCaching 注解就會啟動緩存管理了,但是問題出現(xiàn)了。
重要錯誤日志截圖java.lang.IllegalStateException: @Bean method ShiroConfig.cacheManager called as a bean reference for type [org.apache.shiro.cache.ehcache.EhCacheManager] but overridden by non-compatible bean instance of type [org.springframework.data.redis.cache.RedisCacheManager]. Overriding bean of same name declared in: class path resource [org/springframework/boot/autoconfigure/cache/RedisCacheConfiguration.class]錯誤日志分析
看日志大概就發(fā)現(xiàn)一個非法狀態(tài)異常,我們繼續(xù)查看接下來的日志有一段非常的重要日志 Overriding bean of same name 翻譯過來的意思是幫你重寫了一個名字一樣的 Bean,我再看看日志里有提到 RedisCacheManager 與我自己實現(xiàn)的 cacheManager 到這里我已經(jīng)感覺到問題所在了,以下圖一為 RedisCacheManager 部分實現(xiàn)代碼。圖二為我自己的 Shiro 的 cacheManager 實現(xiàn)方法。
解決問題有 Spring 基礎(chǔ)的大家都應(yīng)該還記得 Spring 不允許有相同的 Bean 出現(xiàn)?,F(xiàn)在問題就在于 Redis 緩存管理器和 Shiro 的緩存管理器重名了,而這二者又是通過 Spring 管理,所以 Spring 讀取這二者的時候,產(chǎn)生沖突了。解決問題的方法很簡單:在自己實現(xiàn) EhCacheManager 時把 @Bean 指定一個名字可以像這樣 @Bean(name ="ehCacheManager" ),還有其他辦法大家可以在想辦法實現(xiàn)一下嘿嘿。
結(jié)語雖然我們都知道 Spring 的報錯是非常多的,但是在 Spring 的報錯日志中查找問題所在是非常有用的,大部分的錯誤,日志都會給你反饋。
如果本文對你哪怕有一丁點(diǎn)幫助,請幫忙點(diǎn)好看。你的好看是我堅持寫作的動力。
另外,關(guān)注之后在發(fā)送 1024 可領(lǐng)取免費(fèi)學(xué)習(xí)資料。
資料詳情請看這篇舊文:Python、C++、Java、Linux、Go、前端、算法資料分享
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73721.html
摘要:發(fā)現(xiàn)問題在一次項目實踐中有實現(xiàn)多級緩存其中有已經(jīng)包括了的,本以為開啟的緩存是一件很簡單的事情只需要在啟動類上加上注解就會啟動緩存管理了,但是問題出現(xiàn)了。 微信公眾號:一個優(yōu)秀的廢人。如有問題,請后臺留言,反正我也不會聽。 showImg(https://segmentfault.com/img/remote/1460000018524912); 前言 來自不愿意透露姓名的小師弟的投稿。...
摘要:說明如果你的項目連項目都不是,請自行轉(zhuǎn)為項目,在按照本教程進(jìn)行。本教程適用于的項目。處理攔截資源文件問題。 說明 如果你的項目連maven項目都不是,請自行轉(zhuǎn)為maven項目,在按照本教程進(jìn)行。本教程適用于spring+springmvc+mybatis+shiro的maven項目。1.修改pom文件依賴 刪除之前的spring依賴,添加springboot依賴 or...
閱讀 3672·2021-11-15 11:37
閱讀 2322·2021-09-24 10:39
閱讀 2459·2021-07-25 21:37
閱讀 1446·2019-08-30 15:56
閱讀 2588·2019-08-30 15:55
閱讀 957·2019-08-30 15:54
閱讀 2128·2019-08-30 14:21
閱讀 858·2019-08-30 11:24