1. 程式人生 > >spring迴圈依賴是怎麼解決的?

spring迴圈依賴是怎麼解決的?

spring中的迴圈依賴會有3種情況: 1.構造器迴圈依賴     構造器的迴圈依賴是不可以解決的,spring容器將每一個正在建立的bean識別符號放在一個當前建立bean池中,在建立的過程一直在裡面,如果在建立的過程中發現已經存在這個池裡面了,這時就會丟擲異常表示迴圈依賴了。 2.setter迴圈依賴    對於setter的迴圈依賴是通過spring容器提前暴露剛完成構造器注入,但並未完成其他步驟(如setter注入)的bean來完成的,而且只能決定單例作用域的bean迴圈依賴,通過提前暴露一個單例工廠方法,從而使其他的bean能引用到該bean.當你依賴到了該Bean而單例快取裡面有沒有該Bean的時候就會呼叫該工廠方法生產Bean, Spring是先將Bean物件例項化之後再設定物件屬性的