Spring源碼解析-讀書筆記2

Spring最核心的兩個類:

1.DefaultListableBeanFactory

    XmlBeanFactory 繼承自DefaultListableBeanFactory.

    DefaultListableBeanFactory是整個bean加載的核心,是spring註冊和加載bean的默認實現;

    XmlBeanFactory和DefaultListableBeanFactory的區別在於:XmlBeanFactory使用了自定義的xml讀取器XmlBeanDefinitionReader,實現了BeanDefinitionReader讀取;DefaultListableBeanFactory繼承了AbstractAutowirecapableBeanFactory 並實現了ConfigurableListableBeanFactory和BeanDefinitionRegistry接口.

2.XmlBeanDefinitionReader

    主要負責xml的讀取,包括資源文件的讀取.解析.註冊.

    通過分析XmlBeanDefinitionReader中主要包含對xml配置文件處理的幾步,如下:

    1).使用resourceLoader將資源文件路徑轉換成對應的Resource文件;

    2).使用DocumentLoader對Resource進行轉換,轉換Document文件;

    3).使用DefaultBeanDefinitionDocumentReder對document進行解析,並使用BeanDefinitionParserDelegate對Element進行解析.

BeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanfactoryTest.xml"))

在上面這句代碼中的執行邏輯:

    1)調用ClassPathResource構造器由classPath下的xml文件生成Resource對象;

    2)在XmlBeanFactory構造器中加載resource,產生BeanFactory對象返回;


spring的配置文件的讀取是通過ClassPathResource來進行封裝的.

之後的讀取工作就右XmlBeanDefinitionReader來完成;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章