1. 程式人生 > >Spring中最核心的兩個類。

Spring中最核心的兩個類。

一、DefaultListableBeanFactory

XmlBeanFactory繼承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整個bean載入的核心部分,是Spring註冊及載入bean的預設實現,而對於XmlBeanFactory與DefaultListableBeanFactory不同的地方其實是在XmlBeanFactory中使用了自定義的XML讀取器XmlBeanDefinitionReader,實現了個性化的BeanDefinitionReader讀取,DefaultListableBeanFactory繼承了AbstractAutowireCapableBeanFactory並實現了ConfigurableListableBeanFactory並實現了ConfigurableListableBeanFactory並實現了ConfigurableListableBeanFactory以及BeanDefinitionRegistry介面。

XmlBeanFactory對DefaultListableBeanFactory類進行了擴充套件,主要用於從XML文件中讀取BeanDefinition,對於註冊及獲取Bean都是使用從父類DefaultListableBeanFactory繼承的方法去實現,而唯獨與父類不同的個性化實現就是增加了XmlBeanDefinitionReader型別的reader屬性。在XmlBeanFactory中主要使用reader屬性對資原始檔進行讀取和註冊。

二、XmlBeanDifinitionReader

1、通過繼承自AbstractBeanDefinitionReader中的方法,來使用ResourLoader江資原始檔路徑轉換為對應的Resource檔案。

2、通過DocumentLoader對Resource檔案進行轉換,將Resource檔案轉換為Document檔案。

3、通過實現介面BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader類對Document進行解析,並使用BeanDefinitionParserDelegate對Element進行解析。