Introduction to the Spring IoC Container and Beans

本章涵盖了 Spring Framework 实现的控制反转 (IoC) 原则。依赖注入 (DI) 是 IoC 的一种特殊形式,其中对象仅通过构造函数参数、工厂方法参数或在从工厂方法构建或返回后设置在对象实例上的属性定义其依赖项(即他们合作的其他对象)。然后,IoC 容器在其创建 bean 时注入这些依赖项。此过程从根本上讲是 bean 本身通过直接构建类或服务定位器模式等机制控制其依赖项的实例化或位置的反向(因此称为控制反转)。

org.springframework.beansorg.springframework.context 包是 Spring Framework IoC 容器的基础。https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html[BeanFactory]接口提供一种高级配置机制,能够管理任何类型的对象。https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html[ApplicationContext]是 BeanFactory 的子接口。它添加:

  • 与 Spring 的 AOP 特性的更简单的集成

  • 消息资源处理(用于国际化)

  • Event publication

  • 应用层特定的上下文,如 web 应用中使用的 WebApplicationContext

简而言之,BeanFactory 提供配置框架和基本功能,并且 ApplicationContext 添加更多企业特定功能。ApplicationContextBeanFactory 的完整超集,并且在本节中专门用于描述 Spring 的 IoC 容器。有关使用 BeanFactory 而不是 ApplicationContext, 的更多信息,请参阅涵盖 BeanFactory API 的部分。

在 Spring 中,形成应用程序主干并由 Spring IoC 容器管理的对象称为 Bean。Bean 是由 Spring IoC 容器实例化、组装和管理的对象。否则,Bean 仅仅是应用程序中的众多对象之一。Bean 及其之间的依赖关系反映在容器使用的配置元数据中。