目录
1. IoC概述
1.1 控制反转
1.2 依赖注入
2. IoC容器在Spring中的实现
2.1 BeanFactory
2.2 ApplicationContext
2.2.1 ApplicationContext的主要实现类
1. IoC概述
全称:Inversion of Control,译为 “控制反转”
Spring通过IoC容器来管理所有Java对象的实例化和初始化,控制对象与对象之间的依赖关系。我们将由IoC容器管理的Java对象称为Spring Bean,它与使用关键字new 创建的Java对象没有任何区别。
1.1 控制反转
- 控制反转是一种思想
- 控制反转是为了降低程序耦合度,提高程序扩展力
- 控制反转,反转的是什么?
(1)将对象的创建权交出去,交给第三方容器(IoC)负责
(2)将对象和对象之间关系的维护权交出去,交给第三方容器(IoC)负责
1.2 依赖注入
它实现了控制反转的思想。指Spring创建对象的过程中,将对象依赖属性通过配置进行注入。
依赖注入常见的俩种实现方式:
- set注入
- 构造注入
结论:IOC就是一种控制反转的思想,而DI是对IOC的一种具体实现。
2. IoC容器在Spring中的实现
Spring 的 IoC 容器就是 IoC思想的一个落地的产品实现。IoC容器中管理的组件也叫做 bean。在创建 bean 之前,首先需要创建IoC 容器。Spring 提供了IoC 容器的两种实现方式:
2.1 BeanFactory
这是 IoC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 本身,不提供给开发人员使用。
2.2 ApplicationContext
BeanFactory 的子接口,提供了更多高级特性。面向 Spring 的使用者,几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。