IoC 全称为 Inversion of Control
,翻译为 “控制反转”数据结构
- 它还有一个别名为 DI(
Dependency Injection
),即依赖注入
- 所谓 IOC ,就是由 Spring IOC 容器来负责对象的生命周期和对象之间的关系
IOC Service Provider 为被注入对象提供被依赖对象也有以下几种方式:构造方法注入、stter方法注入、接口注入ide
- 构造器注入,顾名思义就是被注入的对象经过在其构造方法中声明依赖对象的参数列表,让外部知道它须要哪些依赖对象
- 对于 JavaBean 对象而言,咱们通常都是经过 getter 和 setter 方法来访问和设置对象的属性
- 接口方式注入显得比较霸道,由于它须要被依赖的对象实现没必要要的接口,带有侵入性。通常都不推荐这种方式

Resource体系spa
- 对资源的抽象,它的每个实现类都表明了一种资源的访问策略,如ClasspathResource 、 URLResource ,FileSystemResource 等

ResourceLoader 翻译

BeanFactory 3d
- BeanFactory 是一个很是纯粹的 bean 容器,它是 IOC 必备的数据结构
- 其中 BeanDefinition 是她的基本结构
- 它内部维护着一个 BeanDefinition map
- 并可根据 BeanDefinition 的描述进行 bean 的建立和管理
- BeanFacoty 有三个直接子类
ListableBeanFactory
、HierarchicalBeanFactory
和 AutowireCapableBeanFactory
DefaultListableBeanFactory
为最终默认实现,它实现了全部接口

Beandefinition code
- 用来描述 Spring 中的 Bean 对象
- 各个Bean 之间依赖关系

BeandefinitionReader对象
- 做用是读取 Spring 的配置文件的内容,并将其转换成 Ioc 容器内部的数据结构:BeanDefinition

ApplicationContextblog
- 大名鼎鼎的 Spring 容器,它叫作应用上下文
- 继承 BeanFactory,因此它是 BeanFactory 的扩展升级版
ApplicationContext 的结构就决定了它与 BeanFactory 的不一样,其主要区别有:继承
- 继承 MessageSource,提供国际化的标准访问策略。
- 继承 ApplicationEventPublisher ,提供强大的事件机制。
- 扩展 ResourceLoader,能够用来加载多个 Resource,能够灵活访问不一样的资源。
- 对 Web 应用的支持

IOC 容器的初始化接口
- 包括BeanDefinition的Resources 定位,载入和注册这三个基本的过程
- 以ApplicationContext 为例,继承体系以下:

