什么是IoC
IoC:Inversion of Control,控制反转,是一种设计思想,能指导我们如何设计出松耦合的程序。Spring通过IoC容器管理所有对象的实例化和初始化,控制对象和对象之间的依赖关系。被IoC容器管理的java对象被称为Spring Bean.
IoC特点
-
是一种思想
-
能够降低程序耦合,提高程序扩展力
-
控制反转的内容:
- 对象的创建权
- 对象和对象之间关系的维护权
-
控制反转的实现
- DI(Dependency Injection):依赖注入
IoC管理对象流程
依赖注入
DI:指Spring创建对象的过程中,将对象依赖属性通过配置进行注入。DI是IoC的一种具体实现
常见依赖注入方式:
- set注入
- 构造注入
IoC容器在Spring中的实现
Spring实现IoC容器的两种方式:
-
BeanFactory
IoC容器的基本实现,是Spring的内部接口,不提供给Spring的使用者
-
ApplicationContext
BeanFactory的子接口,提供更多高级特性,面向Spring的使用者
类型名 作用 ClassPathXmlApplicationContext 通过读取类路径下的XML格式的配置文件创建IoC容器对象 FileSystemXmlApplicationContext 通过文件系统路径读取XML格式的配置文件创建IoC容器对象 ConfigurableApplicationContext ApplicationContext子接口,包含一些扩展方法,refresh()和close()让ApplicationContext具有启动、关闭、刷新上下文的能力 WebApplicationContext 基于Web环境创建IoC容器对象,将对象引入存放ServletContext域中