靜態代碼塊中使用Spring Bean導致空指針異常


靜態代碼塊中使用Spring Bean導致空指針異常

可以知道的是,spring bean是對象層次的,而靜態代碼塊是類層次的

如圖:這種情況下外層靜態代碼塊使用classloader去加載RoomTopicObserverImpl

而里層classloader又去加載spring bean,看上去好像沒有什么問題。實際上這里會發生NullPointerException異常

因為spring bean的初始化發生在運行時階段,而類加載先於這個過程,所以導致空指針

解決辦法:

將外層加載對象放到成員實例方法中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM