1. 程式人生 > 實用技巧 >springboot 使用 dev tool 導致 CastException

springboot 使用 dev tool 導致 CastException

1、背景

專案使用了 Spring + shiro  實現 許可權控制, 使用AOP 對 每個 Controller 進行 log 記錄時,需要從 shiro 中 獲取 username欄位, 問題就這樣出現了。

UserDO userDO = (UserDO) SecurityUtils.getSubject().getPrincipal();

出現 java.lang.ClassCastException: 

com.xxx.common.dal.dataobject.UserDO cannot be cast to com.xxx.common.dal.dataobject.UserDO

心裡一驚,這怎麼回事,這段程式碼我看其他地方也有些的。難道前面的沒有問題??

  • 策略一:
    • 立馬debug 試了一下以前的程式碼,發現 都沒有進入,一直沒有呼叫。

  • 策略二: google

  • 反思:

    • 看到 異常資訊,並且 類的許可權定名都一樣,應該要 想到 肯能是 classLoader 的問題了,這是基礎,但 在實際中 卻不能很好的應用 知識。

  • 花了我好久的時間來排查這個問題,真是太 low b了。