spring-boot使用@Cacheable標籤時報錯java.lang.ClassCastException: xxx cannot be cast to or xxx

解決辦法把熱部署功能註釋掉就可以了。。

具體原因我谷歌了下,下面是國外一位大神的解釋

當您使用帶緩存的DevTools時,您需要注意這個限制。

當對象序列化到緩存中時,應用程序類裝入器是C1。然後在更改一些代碼/配置之後,devtools會自動重啓上下文並創建一個新的類加載器(C2)。當您訪問該緩存方法時,緩存抽象將在緩存中找到一個條目,並從存儲中對其進行反序列化。如果緩存庫沒有考慮到上下文類加載器,該對象將有錯誤的類加載器附加到它(這解釋了爲什麼奇怪的異常A不能轉換爲A)。

雖然解決了錯誤,但是沒有熱部署真的很麻煩呀。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章