你不必害怕沉沦堕落,只消你能不断的自拔与更新
Spring IoC之容器初始化
容器初始化
Spring容器的初始化主要分为三个步骤,分别使Bean信息的定位,解析与注册。以XML文件形式的Bean信息为例,Spring首先找到XML文件的位置,然后读取此文件,并且将文件解析成相应的BeanDefinition,最后将获取到的BeanDefinition注册到BeanFactory中去。
Bean信息定位,解析与注册
Spring容器的初始化的主要工作是定位Bean配置文件,读取并解析Bean配置文件,最后生成相应的BeanDefinition,先看一张简单的序列图对Spring容器的初始化做大概的了解:

从这副顺序图中我们可以看出,Spring容器的初始化过程主要由四个类来完成,我们可以参考下类的注释以了解这几个类的职责:
- XmlBeanDefinitionReader:用于XML Bean定义信息的BeanDefinitionReader,将事实上的XML文件读取代理给BeanDefinitionDocumentReader接口的一个实现。
- BeanDefinitionDocumentReader:用于解析Spring Bean定义信息的服务提供接口(SPI),在实际解析DOM文档的时候,由XmlBeanDefinitionReader来调用。
- BeanDefinitionParserDelegate:用于解析XML Bean定义信息的有状态代理类。负责一个Bean的定义信息解析策划能够BeanDefinition对象。
- BeanDefinitionRegistry:负责将得到的Bean定义信息注册到BeanFactory中。