1. 程式人生 > >SpringBoot整合shiro-redis遇到的問題(java.lang.ClassCastException)

SpringBoot整合shiro-redis遇到的問題(java.lang.ClassCastException)

專案啟動時載入專案中的類使用的載入器都是 
org.springframework.boot.devtools.restart.classloader.RestartClassLoader 
而從shiro session 取出來的物件(從redis中取出經過反序列化)的類載入器都是 
sun.misc.Launcher.AppClassLoader 
很明顯會導致型別轉換異常,原來Spring的dev-tools為了實現重新裝載class自己實現了一個類載入器,來載入專案中會改變的類,方便重啟時將新改動的內容更新進來。

方案一、不使用spring-boot-devtools

方案二:在resources目錄下面建立META-INF資料夾,然後建立spring-devtools.properties


restart.include.mapper=/mapper-[\\w-\\.]+jar
restart.include.pagehelper=/pagehelper-[\\w-\\.]+jar
# 因為我專案中引用了 org.crazycake:shiro-redis ,所以要引用下面這個配置
restart.include.shiro=/shiro-[\\w-\\.]+jar

好了,見證奇蹟的時刻到了。