今天遇到一件奇怪的事情,之前都是很好的能正常運行,但是今天突然發現注解出問題,@Reference注解報錯,null空指針異常,問題是代碼都沒有改動過,就突然這樣。部分代碼如下圖:
然后我百度查到的方法基本沒用,但是這兩篇文章有參考意義,大家可以看看:
https://blog.csdn.net/zhou_java_hui/article/details/53039491
https://blog.csdn.net/magic_hwz/article/details/50772722
因為我之前運行是好的,並且spring-boot,本來就是約定大於配置,且初衷就是簡化配置的,大部分解決方法是要重新加配置文件,所以被我直接否定了。第二篇文章中的掃描controller注入的順序這個引起了我的注意,我在想是不是我啟動的順序有問題,下圖是我項目的結構
項目設計之初是想分布式部署,所以分了客戶端,和服務端。經過測試發現真的是程序啟動的順序問題。
之前都是先啟動server服務端,然后在啟動client端的,但是這兩天項目有點趕,調試的時候,想快點啟動,所以幾乎是同時啟動server和client程序,甚至client先啟動,然后就導致了本文標題的錯誤。之后我就老老實實的先啟動server程序,在啟動client。
剛開始接觸spring-boot,很多問題不是很了解,這個主要就是記錄一下,可以跟大家一起討論討論。或許可以不按照順序啟動,但是目前能力,時間有限,暫未研究;還有熱部署啟動也嘗試過,但是會遇到一些問題,后續也會研究,就不要吐槽我調試的時候,每次啟動了。