IOC初始化構(gòu)造
IOC容器的構(gòu)建歸為以下三步:
1. Bean定義資源文件的定位
2. Bean定義資源文件的載入
3. Bean定義的注冊(cè)
Spring構(gòu)造IOC容器肺魁,可以用一行代碼完成:
XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("beans.xml"));
這行代碼簡(jiǎn)單卻不明了,我們將他拆分為多行代碼隔节,可以清晰明了的了解Spring是如何構(gòu)建IOC容器的代碼如下所示:
ClassPathResource resource = new ClassPathResource("beans.xml");
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(resource);
從而可以將IOC容器的構(gòu)建歸為以下六步
- 定義好Spring的配置文件鹅经。
- 通過Resource對(duì)象將Spring配置文件進(jìn)行抽象,抽象成一個(gè)Resource對(duì)象怎诫。
- 定義好Bean工廠瘾晃。
- 定義好XmlBeanDefinitionReader對(duì)象,并將工廠作為參數(shù)傳遞進(jìn)去供后續(xù)回調(diào)使用幻妓。
- 通過XmlBeanDefinitionReader對(duì)象讀取之前抽象出的Resource對(duì)象(包含了XML文件的解析過程)蹦误。本質(zhì)上,XML文件的解析是由XmlBeanDefinitionReader交由BeanDefinitionParserDelegate委托來完成(用到了委托模式)
- IoC容器創(chuàng)建完畢,用戶可以通過容器獲取到所需的對(duì)象信息强胰。