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