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