springIOC容器详解
2018-09-15 10:50
183 查看
SpringIOC容器又被搞了,我tm今天要搞定这个东西
我目前看过最好的讲解是这篇作者的
https://www.jianshu.com/p/4007079cb6c0
Spring的
IoC容器在实现控制反转和依赖注入的过程中,可以划分为两个阶段:
- 容器启动阶段
Bean
实例化阶段
这两个阶段中,
IoC容器分别作了以下这些事情:
2、IoC容器及IoC容器如何获取对象间的依赖关系
Spring中提供了两种
IoC容器:
BeanFactory
ApplicationContext
这两个容器间的关系如下图:
这里写图片描述
我们可以看到,
ApplicationContext是
BeanFactory的子类,所以,
ApplicationContext可以看做更强大的
BeanFactory
2.我们来看看这两个容器的区别:
BeanFactory是基础的IOC容器:如果没有特殊指定,默认采用延迟初始化策略(
lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入操作。所以,相对来说,容器启动初期速度较快,所需要的资源有限。
ApplicationContext:在BeanFactory的基础上创建,相对更高级,提供了更多的功能,在启动时就完成所有初始化,容
器启动时间较之
BeanFactory也会长一些。
3、万里长征第一步:加载配置文件信息
我们说BeanFactory容器:
在
BeanFactory容器中,每一个注入对象都对应一个
BeanDefinition实例对象,该实例对象负责保存注入对象的所有必要信息,包括其对应的对象的class类型、是否是抽象类、构造方法参数以及其他属性等。当客户端需要时,容器会通过这些信息返回一个可用的实例
BeanFactory对象从哪里来呢?通过一个专门解析配置文件的类。BeanDefinitionReader他负责读取xml文件并解析,将解析的内容映射到BeanDefinition
4、笼统讲解容器中对象的创建和获取
实现Bean注册的接口是BeanDefinitionRegistry,通过这个接口注册Bean,它要通过BeanDefinition对Bean完成注册。
总结来说就是我们先通过BeanDinfitionReader注册到BeanDefintion中,再通过BeanDefinitionRegistry完成bean的注册
阅读更多
相关文章推荐
- Spring学习-06:IOC容器装配Bean(xml配置方式)详解
- Spring-IOC容器详解
- JAVAWEB开发之Spring详解之——Spring的入门以及IOC容器装配Bean(xml和注解的方式)、Spring整合web开发、整合Junit4测试
- Spring IOC源码详解之容器初始化
- spring(基础13) 使用spring详解来构造IoC容器
- [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。
- Spring--IOC容器详解
- Spring IoC容器中Bean的作用范围详解
- Spring(一)Spring IOC容器配置详解——基于xml文件形式
- Spring架构详解之IOC容器的构建
- [Spring学习笔记 1 ] Spring 简介,初步知识--Ioc容器详解 基本原理。
- Spring源码解析二:IOC容器初始化过程详解
- 详解Spring IoC容器
- springMVC上下文 和 springIOC容器 关联详解
- spring在IoC容器中装配Bean详解
- Spring-- IOC容器详解
- Spring(一)Spring IOC容器配置详解——基于xml文件形式
- Spring IOC源码详解之容器依赖注入
- Spring-- IOC容器详解
- Spring之IOC、核心容器和Bean概念详解