請闡述下你對spring循環依賴的理解?真的是......禿頭是有原因的......
下面逐層深入了解,揭開它的神秘面紗!
在調用createBeanInstance,通過反射實例化對象后,會調用addSingletonFactory方法,將創建的早期對象存放到三級緩存中。所以關鍵在于三級緩存中是否存在早期對象;比如:上述場景二:均采用構造器注入,為什么不支持該場景呢?
創建beanA時,在執行createBeanInstance(beanA)方法時,此時發現beanA依賴beanB,則會去執行創建beanB流程,但是此時addSingletonFactory方法并沒有執行,則三級緩存中不存在早期對象beanA,所以spring不支持“均采用構造器注入”的場景。
上述其他場景不再一一闡述。
AOP代理本質是反射,反射出來的對象每次都是不同的,如果多個對象和beanA出現循環依賴,那么只有二級緩存的話就會反射出不同的對象了。
本文鏈接:http://www.www897cc.com/showinfo-26-11891-0.html了解Spring中循環依賴流程,絕殺面試官!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com