美文网首页
Spring IoC容器的初始化过程

Spring IoC容器的初始化过程

作者: 温不胜_kangle | 来源:发表于2020-05-13 11:14 被阅读0次

包括三个方面:BeanDefinition的Resource定位、载入和注册

Spring将此三个过程分开,并使用不同的模块来完成,如使用ResourceLoader、BeanDefinitionReader等模块,通过这样的设计方式,可以让用户更加灵活的对这三个过程进行裁剪和扩展,定义出最适合自己的IoC容器的初始化

具体:

1、Resource的定位

指的是BeanDefinition的资源定位,是由ResourceLoader通过统一的Resource接口来完成。这个Resource对各种形式的BeanDefinition的使用都提供了统一的接口。如:文件系统中的Bean的定义信息可以使用FileSystemResource来进行抽象;类路径中的Bean定义信息可以使用ClassPathResource来使用。

2、BeanDefinition的载入

把用户定义好的Bean(可以是文件中的资源,也可以是在java中自定义的对象)表示成IoC容器内部的数据结构,而IoC容器内部的数据结构是指BeanDefinition。BeanDefinition指的是POJO对象在IoC容器中的抽象,通过这个BeanDefinition定义的数据结构,使IoC容器能够方便的对POJO对象进行管理。

3、向IoC容器注册BeanDefinition

通过调用BeanDefinitionregistry接口来实现。在IoC容器内部将BeanDefinition注入到HashMap中,IoC容器就是通过这个HashMap来持有这些Beandenifition数据的。

注意:

1、以上说的是IoC容器的初始化。这个过程中不包括bean依赖的注入。在Spring IoC中,Bean定义的载入和依赖的注入是两个独立的过程。依赖的注入一般发生在应用第一次通过getBean向勇气索取Bean的时候。

2、IoC有一个预实例化的配置,在Bean上设置lazyint属性,这个Bean的依赖注入在IoC容器初始化时就预先完成了,而不是等到整个初始化完成之后,第一次使用getBean时才触发。

参考文献:Spring技术内幕(第二版)计文柯 机械工业出版社

相关文章

  • Spring IoC一、容器初始化过程

    Spring IoC一、容器初始化过程 本文追踪Spring运行程序流程分析Ioc容器初始化的过程。依赖注入的部分...

  • Spring中IOC容器的初始化过程

    Spring IOC容器初始化过程分为Resource定位,载入解析,注册。IOC容器初始化过程中不包含Bean的...

  • Spring核心:IOC容器的实现(四)

    IOC容器的初始化过程: Spring的IoC容器初始化包括:Bean定义资源文件的定位、载入和注册3个基本过程。...

  • spring bean

    Spring IOC 容器源码分析 Bean初始化过程 ConversionService ConversionS...

  • 面试问题记录(08.12)

    Spring:IOC的理解以及IOC容器的初始化过程,Spring的Bean保持在哪里,BeanFactory与F...

  • Spring IoC - 依赖注入 源码解析

    前言 上一篇文章中,我们介绍了Spring IoC 的容器初始化过程 - IoC 容器初始化 本篇文章中,我们继续...

  • spring-core

    bean: 应用里被Spring IoC容器管理的对象叫做bean.Spring IoC容器负责bean的初始化,...

  • spring知识点

    spring是一个容器,可以将任何对象的初始化过程交给spring容器来管理,通过spring的IOC机制注入到s...

  • Spring - IOC容器初始化

    最近阅读了一些Spring Framework里IOC容器的初始化相关的代码。 IOC容器的初始化,将对象交给容器...

  • spring IOC容器的初始化过程

    Spring IOC容器的初始化过程: 1. BeanDefinition的资源定位 即Bean定义的资源...

网友评论

      本文标题:Spring IoC容器的初始化过程

      本文链接:https://www.haomeiwen.com/subject/faagnhtx.html