4.1 Spring IoC 容器和 bean 的介绍

本章涵盖了 Spring Framework 的控制反转容器(IoC)[参考 1.1 节的背景]原则的实现。 IoC 也被称为是依赖注入(DI)。这是一个对象定义它们依赖的过程,也就是说,它们使用的 其它对象,仅仅通过构造方法参数,工厂方法参数或在对象被创建后的实例上设置的属性, 亦或者是从工厂方法返回的参数。之后容器在它创建 bean 的时候注入那些依赖。这个过程 是根本上的反向,因此名称是控制反转(IoC),bean 本身控制实例化或直接地使用类的构 造来定位它的依赖,或者是如服务定位器模式的机制。

org.springframework.beans 和 org.springframework.context 包是 Spring Framework 的 IoC 容器的基础。BeanFactory 接口提供高级的配置机制,可以管理任意类 型的对象。ApplicationContext 是 BeanFactory 的子接口。它添加了和 Spring 的 AOP 特性很简便的整合;消息资源处理(用于国际化 i18n),事件发布;应用层特定的上下文, 比如用于 Web 应用程序的 WebApplicationContext。

总之,BeanFactory 提供了配置框架和基本功能,而 ApplicationContext 添加 了更多企业级开发特定的功能。ApplicationContext 是 BeanFactory 完整的超集, 专门用于本章,来描述 Spring 的 IoC 容器。对于使用 BeanFactory 而不是 ApplicationContext 的更多信息,可以参考 4.15 节“BeanFactory”。

在 Spring 中,对象构成应用程序的骨感,它们是由 Spring 的 IoC 容器管理的,并被称为 bean。一个 bean 就是一个实例化并组装的对象,由 Spring 的 IoC 容器来管理。否则,bean 就是应用程序中众多对象之一。Bean 和它们之间的依赖,反射出由容器使用的配置元数据。