Spring IoC 容器和 Bean 介绍
本章涵盖了 Spring Framework 对控制反转 (IoC) 原则的实现。依赖注入 (DI) 是 IoC 的一种专门形式,对象通过构造函数参数、工厂方法的参数或在对象实例构造后或从工厂方法返回后设置的属性来定义它们的依赖关系(即它们所工作的其他对象)。然后,IoC 容器在创建 bean 时注入这些依赖关系。这个过程从根本上是反向的(因此得名控制反转),即 bean 本身不再通过直接构造类或使用服务定位器模式等机制来控制其依赖关系的实例化或位置。
org.springframework.beans
和 org.springframework.context
包是 Spring Framework IoC 容器的基础。 BeanFactory 接口提供了一种先进的配置机制,能够管理任何类型的对象。 ApplicationContext 是 BeanFactory
的一个子接口。它增加了:
-
更容易与 Spring 的 AOP 特性集成
-
消息资源处理(用于国际化)
-
事件发布
-
应用层特定上下文,例如
WebApplicationContext
,用于 web 应用程序。
简而言之,BeanFactory
提供了配置框架和基本功能,而 ApplicationContext
增加了更多企业特定的功能。ApplicationContext
是 BeanFactory
的一个完整超集,并且在本章中仅用于描述 Spring 的 IoC 容器。有关使用 BeanFactory
而不是 ApplicationContext
的更多信息,请参见涵盖 BeanFactory API 的部分。
在 Spring 中,构成您应用程序骨架的对象以及由 Spring IoC 容器管理的对象称为 beans。一个 bean 是由 Spring IoC 容器实例化、组装和管理的对象。否则,bean 只是您应用程序中的众多对象之一。Beans 及其之间的依赖关系反映在容器使用的配置元数据中。