容器的基礎 XmlBeanFactory(1)

容器的基礎 XmlBeanFactory(1)

這是第一篇Spring源碼分析,主要是爲了找到繼續閱讀源碼的興趣,瞭解一個概況同時找了ignoreDependencyInterfaceignoreDependencyType深入分析了下。

鏈接

從頭看點這裏
下載源碼、筆記以及對應的例子進入我的GitHub

參考鏈接

  1. 打開BeanFactory ignoreDependencyInterface方法的正確姿勢
  2. BeanFactoryPostProcessor詳解 - 憤怒的蘋果ext的博客
  3. BeanFactoryPostProcessor和BeanPostProcessor的調用時點

概況

  1. 我們通過一個簡單例子切入源碼,閱讀spring-bean-test1,簡單瞭解獲取一個bean的過程
  2. 首先介紹了核心類DefaultListableBeanFactory,其次按照在該類註釋中@see順序大致瞭解下各個類
  3. 進入到XmlBeanFactory瞭解XmlBeanFactoryDefaultListableBeanFactory的區別,瞭解構造過程
  4. 進入到AbstractAutowireCapableBeanFactory的構造函數,進而深入到ignoreDependencyInterface中查看其作用,以及與ignoreDependencyType區別
  5. 最後通過小例子ignored-dependency-test來查看ignoreDependencyType以及ignoreDependencyInterface是如何工作的在自動裝配的過程中忽略某些類

總結

  1. BeanFactoryPostProcessorSpring提供的一個擴展點,讓我們可以在所有bean都加載、註冊完成(還未初始化)的時候,允許我們做一些修改,例子中我們可以在自動注入的時候忽略某些屬性的注入,或者修改成員屬性的值
  2. ignoreDependencyType以及ignoreDependencyInterface兩者是不同的,平時ignoreDependencyType的功能已經足夠使用,而ignoreDependencyInterface是忽略接口中的set方法,從而在實現類中具有相同參數的set方法也會被忽略,從而對應的成員在自動裝配的時候被忽略,目的是爲了某些重要的成員屬性(比如ApplicationContextAwareBeanFactoryAware)統一交由框架進行注入。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章