众所周知,做java开发的几乎没有人没听说过Spring框架,它作为一个轻量级的开源框架不仅给我们的开发工作带来了许多便利,同时也为众多开源框架的研究提供了不可或缺的指导思想。我们都知道,Spring最为核心的两大功能特性就是IOC和AOP。
下面是一张整理出来的思维导图:
接下来,我们来看一下Spring框架的类结构关系图
1、ApplicationContext上下文的类结构关系:
2、Bean相关的类结构关系图
Spring的IOC实现步骤解析:
1. 加载并且保存Spring配置文件路径信息然后保存到configLocation中
2. 刷新Spring上下文环境
3. 创建并且载入DefaultListableBeanFactory(即BeanFactory)
4. 根据DefaultListableBeanFactory创建XMLBeanDefinitionReader,用于后面读取xml配置文件信息
5. 创建BeanDefinitionDelegate代理类,用于解析xml配置信息
6. 解析xml中配置的<import>、<bean>、<beans>、<alias>等不同的标签信息,以便于可以使用不同的解析器进行解析
7. 通过XMLBeanDefinitionReader结合location路径信息读取Resources资源信息
8. 使用BeanDefinitionDelegate代理类解析Bean元素并且依次进行实例化操作,实例化完毕之后将Bean信息注册(put)到BeanDefinitionMap中以便于可以下次继续使用