Spring IOC过程

#IOC的过程
前提
IOC容器的接口结构图片

  • BeanFactory->HierarchicalBeanFactory->ConfigurableBeanFactory BeanFactory定义了最基本的IOC的接口规范。
  • H主要是增加了getParentFactory的功能,设置双亲ioc容器 C的话主要是增加Factory的配置功能
  • 基本的默认实现是DefaultBeanFacory,其他都是扩展
  • ApplicationContext既实现了BeanFactory又有一些比如实现ResourceLoader等更加高级的功能

#IOC的初始化过程

  1. Resource资源的定位 ——–这里的资源定位指的是BeanDefinition的资源定位,通过ResourceLoader的统一接口Resource定位
  2. BeanDefinition的载入——把定义好的Bean表示成一个数据结构这个结构解释BeanDefinition。也就是POJO对象在容器中的抽象
  3. 向IOC容器注册BeanDefinition(放入一个HashMap的容器中)——-把解析好的BeanDefinition注册到容器中去

tips:这里的Bean定义的载入和IOC的依赖注入是两个独立的过程,依赖注入一般发生在第一次通过getBean获取Bean的时候。特别情况下是如果对某个Bean设置了lazyinit属性那么Bean的依赖注入在容器初始化的时候就完成了。

0%