簡(jiǎn)單了解Spring beanfactory循環(huán)依賴命名重復(fù)屬性
是否允許循環(huán)依賴和bean的命名重復(fù)取決于beanfactory的兩大屬性
allowBeanDefinitionOverriding和allowCircularReferences。這兩個(gè)屬性未指定時(shí)取的是DefaultListableBeanFactory中的默認(rèn)值,均為true,即默認(rèn)允許同名bean和循環(huán)引用(只有單例允許)。
但是假如讀者用的springboot版本比較新,就會(huì)發(fā)現(xiàn)情況并不是這樣,同名bean會(huì)沖突報(bào)錯(cuò)。為什么呢,跟蹤源碼發(fā)現(xiàn)是Springboot應(yīng)用在2.1.8版本的時(shí)候給bean名沖突設(shè)定了默認(rèn)值為false。
在SpringApplication類中
總結(jié):spring舊版本默認(rèn)允許循環(huán)依賴(單例)和bean名覆蓋,但是在springboot 2.1.8版本之后不允許bean名覆蓋(可以提前發(fā)現(xiàn)問(wèn)題),允許循環(huán)依賴(單例)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 怎樣打開XML文件?xml文件如何打開?2. ASP.NET MVC使用Identity增刪改查用戶3. HTML5視頻播放標(biāo)簽video和音頻播放標(biāo)簽audio標(biāo)簽的正確用法4. Thinkphp6 配置并使用redis圖文詳解5. 使用python tkinter開發(fā)一個(gè)爬取B站直播彈幕工具的實(shí)現(xiàn)代碼6. 多級(jí)聯(lián)動(dòng)下拉選擇框,動(dòng)態(tài)獲取下一級(jí)7. Python PyQt5-圖形界面的美化操作8. Java 注解學(xué)習(xí)筆記9. ASP.NET MVC前臺(tái)動(dòng)態(tài)添加文本框并在后臺(tái)使用FormCollection接收值10. 關(guān)于JSP用戶登錄連接數(shù)據(jù)庫(kù)詳情
