容器的基礎 XmlBeanFactory(1)
這是第一篇Spring源碼分析,主要是為了找到繼續閱讀源碼的興趣,了解一個概況同時找了和
ignoreDependencyInterface
深入分析了下。
ignoreDependencyType
連結
從頭看點這裡
下載下傳源碼、筆記以及對應的例子進入我的GitHub
參考連結
- 打開BeanFactory ignoreDependencyInterface方法的正确姿勢
- BeanFactoryPostProcessor詳解 - 憤怒的蘋果ext的部落格
- BeanFactoryPostProcessor和BeanPostProcessor的調用時點
概況
- 我們通過一個簡單例子切入源碼,閱讀spring-bean-test1,簡單了解擷取一個
的過程bean
- 首先介紹了核心類
,其次按照在該類注釋中@see順序大緻了解下各個類DefaultListableBeanFactory
- 進入到
了解XmlBeanFactory
和XmlBeanFactory
的差別,了解構造過程DefaultListableBeanFactory
- 進入到
的構造函數,進而深入到AbstractAutowireCapableBeanFactory
中檢視其作用,以及與ignoreDependencyInterface
差別ignoreDependencyType
- 最後通過小例子ignored-dependency-test來檢視
以及ignoreDependencyType
是如何工作的在自動裝配的過程中忽略某些類ignoreDependencyInterface
總結
-
是BeanFactoryPostProcessor
提供的一個擴充點,讓我們可以在所有Spring
都加載、注冊完成(還未初始化)的時候,允許我們做一些修改,例子中我們可以在自動注入的時候忽略某些屬性的注入,或者修改成員屬性的值bean
-
以及ignoreDependencyType
兩者是不同的,平時ignoreDependencyInterface
的功能已經足夠使用,而ignoreDependencyType
是忽略接口中的ignoreDependencyInterface
方法,進而在實作類中具有相同參數的set
方法也會被忽略,進而對應的成員在自動裝配的時候被忽略,目的是為了某些重要的成員屬性(比如set
、ApplicationContextAware
)統一交由架構進行注入。BeanFactoryAware