Spring IOC介绍及其原理
一、Spring IOC是什么
- IOC:控制反转,是一种设计模式。
- 一层含义是控制权的转移,由传统的在程序中控制依赖转移到由容器来控制。
- 第二层是依赖注入:将相互依赖的对象分离,在Spring配置文件中描述他们的依赖关系,他们的依赖关系只在使用的时候才建立,简单来说就是不需要的NEW一个对象了。
二、Spring IOC简单原理
实现步骤:
- 加载并且保存Spring配置文件路径信息,然后保存到configLocation中。
- 刷新Spring上下文。
- 创建并且载入DefaultListableBeanFactory(即BeanFactory)。
- 根据DefaultListableBeanFactory创建XMLBeanDefinitionReader,用于后面读取xml配置文件信息。
- 创建BeanDefinitionDelegate代理类,用于解析xml配置信息。
- 解析xml中配置的<import>、<beans>、<alias>等不同的标签信息,以便于可以使用不同的解析器进行解析。
- 通过XMLBeanDefinitionReader结合location路径信息读取Resources资源信息。
- 使用BeanDefinitionDelegate代理类解析Bean元素并且依次进行实例化操作,实例化完毕之后将Bean信息注册(put)到BeanDefinitionMap中以便于可以下次继续使用。