天天看點

IOC容器注入Spring bean——XML篇

IOC容器擷取Spring bean

分解成三個步驟,互相之間解耦

1. 資源定位

2. Bean Definition載入

3. Bean Definition注入

以XML配置檔案的方式為例,記錄整個過程

資源定位篇

  • 輸入:XML配置檔案
  • 輸出:

    Resource(org.springframework.core.io)

    暫不深究Resource的細節,至少應包含了資源類型、配置檔案類容。

Bean Definition載入篇

  • 輸入:

    Resource

  • 輸出:

    BeanDefinitionHolder(org.springframework.beans.factory.config)

BeanDefinitionHolder

中持有Bean Definition解析後的對象

BeanDefinition

、Bean的名稱、以alias。

BeanDeftinition

部分參數說明可見:http://blog.csdn.net/xianzhen376/article/details/49069867

資料轉化流程:

Resource

(InputStream) ->

Document

->

BeanDefinition

Bean Definition注冊篇

  • 輸入:

    BeanDefinitionHolder

  • 輸出:

    beanDefinitionMap

    (org.springframework.beans.factory.support.DefaultListableBeanFactory)

注冊解析出來的Bean,将内容記錄在beanDefinitionMap中。

至此XML檔案中定義的Bean就已經注入到IOC容器中。

附:細節部分後續詳細總結,BeanDefinition載入過程有點意思。

參考:

1. 《Spring 技術内幕》 by 計文柯

2. Spring 4.0 源碼