IOC容器

一、IOC:控制反转

IoC : Inversion of Control 的简写,译为“控制反转”,是一种思想。

IOC容器: Spring 框架的核心,Spring 通过 IoC 容器来管理所有 Java 对象的实例化和初始化,控制对象与对象之间的依赖关系。,并管理他们的整个生命周期从创建到销毁。

Spring Beans: 我们将由 IoC 容器管理的 Java 对象称为 Spring Bean,它与使用关键字 new 创建的 Java 对象没有任何区别。

DI(依赖注入):我们不通过 new 的方式在类内部创建依赖类的对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入)给类来使用。

二、两种容器

1.BeanFactory

它是最简单的容器,给 DI 提供了基本的支持,它用 org.springframework.beans.factory.BeanFactory 接口来定义。

采用懒加载机制。容器在加载配置文件时并不会立刻创建 Java 对象,只有程序中获取(使用)这个对对象时才会创建。

BeanFactory 是 Spring 内部使用接口,通常情况下不提供给开发人员使用。

2.ApplicaticonContext

ApplicationContext 是 BeanFactory 接口的子接口,是对 BeanFactory 的扩展。

ApplicationContext 在 BeanFactory 的基础上增加了许多企业级的功能,例如 AOP(面向切面编程)、国际化、事务支持等。

ApplicationContext 容器包括 BeanFactory 容器的所有功能,所以通常建议超过 BeanFactory。BeanFactory 仍然可以用于轻量级的应用程序,如移动设备或基于 applet 的应用程序,其中它的数据量和速度是显著。

ApplicationContext有2个实现类:

实现类描述示例代码
ClassPathXmlApplicationContext加载类路径 ClassPath 下指定的 XML 配置文件,并完成 ApplicationContext 的实例化工作ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation);
FileSystemXmlApplicationContext加载指定的文件系统路径中指定的 XML 配置文件,并完成 ApplicationContext 的实例化工作ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation);
Last modification:March 27th, 2022 at 07:52 am
如果觉得我的文章对你有用,请随意赞赏