Spring 中出現相同名稱的 bean 的處理機制

小總結:

如果啓用組件掃描,bean名稱不同時,Spring將嘗試創建一個bean,即使該類的bean已經在spring-config.xml中定義了。

但是,如果在spring配置文件中定義的bean和自動發現的bean具有相同的名稱,那麼在組件掃描時,spring不會創建一個新的bean。

spring.xml 與 spring-mvc.xml 定義具有相同名稱的 bean 後者覆蓋前者

如果一個bean沒有一個no-args構造函數,至少有一個構造函數必須是自動連接的。

如果沒有構造函數是自動連接的,那麼spring將嘗試使用默認的no-args構造函數創建一個對象。

掃描機制一樣:發現的bean具有相同的名稱,那麼在組件掃描時,spring不會創建一個新的bean。

Reference:

解決spring中不同配置文件中存在name或者id相同的bean可能引起的問題

關注公衆號,分享乾貨,討論技術


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