Spring 無法找到指定的 bean 但是這個bean實際上是存在的

先說結論:

通過applicationContext手動執行時發現異常:org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXX’

確定是由於缺少依賴的組件導致的,該異常一般產生原因:

  • 對應的 bean 沒有添加註解;
  • 對應的 bean 添加註解錯誤,例如將 Spring 的@Service錯選成 dubbo 的;
  • 選擇錯誤的自動注入方法等。
  • 打包時相關的依賴包丟失了這個組件【本次排查問題原因】

問題排查思路:

1、首先確定問題產生情況:其他所有的bean都能正常加載,就這個新加的bean無法正常加載

2、通過applicationContext調用 getBeanNamesForAnnotation(org.springframework.stereotype.Service.class)

找到所有的service:發現存在這個bean類型

3、通過名稱尋找getBean("XXX")發現debug時出現了異常:org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘XXX’ 這個異常由於日誌級別原因沒有正常打印

定位問題:

由於本次是增量打包涉及的jar有兩個,一個是組件包,另一個是組合交易包【只打版了這個】。導致spring在構建bean的時候無法正常構建這個組合交易【缺失了組件包的組件】。導致交易異常,無法取到這個bean文件。

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