SpringIOC的理解,其初始化过程?

目录

在spring IOC容器的设计中,有两个主要的容器系列。

使用IOC容器的步骤:

IOC容器的初始化过程:

参考资料:


在spring IOC容器的设计中,有两个主要的容器系列。

1.实现BeanFactory接口的普通容器系列(只实现了容器最基本的功能)。

2.ApplicationContext应用上下文,作为容器的高级形态,在普通容器的基础上,增加了许多面向框架的特性,并对应用环境作了很多适配。

 

    SpringIOC容器的具体实现,需要满足BeanFactory接口定义。

Spring通过定义BeanDefinition来管理Spring应用中的对象以及对象之间的依赖关系。

使用IOC容器的步骤:

1.创建IOC配置文件的抽象资源,这个抽象资源包含了BeanDefinition的定义信息。

2.创建一个BeanFactory(如:DefaultListableBeanFactory)。

3.创建一个载入BeanDefinition的读取器(如:XmlBeanDefinitionReader)。

4.从定义好的资源位置读入配置信息,然后由XmlBeanDefinitionReader负责解析。完成载入和注册Bean之后,IOC容器就建立完成了。

ClassPathResource res = new ClassPathResource("bean.xml");
DefaultListableBeanFactory factory = new DefaultListableBeanFactory();
XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
reader.loadBeanDefinitions(res);

IOC容器的初始化过程:

  1. Resource定位过程。指的是BeanDefinition的资源定位。
  2. BeanDefinition的载入。把定义好的Bean表示成IOC容器内部的数据结构,这个容器内部的数据结构就是BeanDefinition。BeanDefinition值POJO对象在IOC容器中的抽象。
  3. IOC容器注册这些BeanDefinition的过程。通过调用BeanDefinitionRegistry接口的实现来完成的。

(注册过程:把载入过程中解析得到的BeanDefinition向IOC容器中进行注册。在IOC容器内部将BeanDefinition注册到一个HsahMap中,IOC容器就是通过这个HashMap来持有这些BeanDefinition数据的。)

参考资料:

Spring IOC初始化过程——源码解读

Spring容器IOC初始化过程

你可能感兴趣的:(spring)