您的位置:首頁技術文章
文章詳情頁

簡單了解Spring beanfactory循環依賴命名重復屬性

瀏覽:67日期:2023-08-31 10:03:01

是否允許循環依賴和bean的命名重復取決于beanfactory的兩大屬性

簡單了解Spring beanfactory循環依賴命名重復屬性

allowBeanDefinitionOverriding和allowCircularReferences。這兩個屬性未指定時取的是DefaultListableBeanFactory中的默認值,均為true,即默認允許同名bean和循環引用(只有單例允許)。

簡單了解Spring beanfactory循環依賴命名重復屬性簡單了解Spring beanfactory循環依賴命名重復屬性

但是假如讀者用的springboot版本比較新,就會發現情況并不是這樣,同名bean會沖突報錯。為什么呢,跟蹤源碼發現是Springboot應用在2.1.8版本的時候給bean名沖突設定了默認值為false。

在SpringApplication類中

簡單了解Spring beanfactory循環依賴命名重復屬性簡單了解Spring beanfactory循環依賴命名重復屬性

總結:spring舊版本默認允許循環依賴(單例)和bean名覆蓋,但是在springboot 2.1.8版本之后不允許bean名覆蓋(可以提前發現問題),允許循環依賴(單例)。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
国产综合久久一区二区三区