Spring DI - IoC 容器
Spring 容器是 Spring 框架的核心。 容器将创建对象,将它们连接在一起,配置它们,并管理它们从创建到销毁的完整生命周期。 Spring 容器使用 DI 来管理组成应用程序的组件。 这些对象称为 Spring Bean,我们将在下一章讨论。
容器通过读取提供的配置元数据来获取关于要实例化、配置和组装哪些对象的指令。 配置元数据可以由 XML、Java 注解或 Java 代码表示。 下图代表了 Spring 如何工作的高级视图。 Spring IoC 容器利用 Java POJO 类和配置元数据来生成完全配置且可执行的系统或应用程序。

Spring 提供了以下两种不同类型的容器。
序号 | 容器 & 描述 |
---|---|
1 |
这是为 DI 提供基本支持的最简单的容器,由 org.springframework.beans.factory.BeanFactory 接口定义。 Spring 中仍然存在 BeanFactory 及其相关接口,如BeanFactoryAware、InitializingBean、DisposableBean,目的是为了向后兼容大量与Spring集成的第三方框架。 |
2 |
此容器添加了更多特定于企业的功能,例如从属性文件解析文本消息的能力以及将应用程序事件发布到感兴趣的事件侦听器的能力。 这个容器由 org.springframework.context.ApplicationContext 接口定义。 |
ApplicationContext 容器包含 BeanFactory 容器的所有功能,因此通常推荐使用它而不是 BeanFactory。 BeanFactory 仍可用于轻量级应用程序,如移动设备或基于小程序的应用程序,其中数据量和速度非常重要。