5.1 Spring IoC和Beans的介绍
该章节涉及Spring框架实现控制反转的原理。IoC也叫依赖注入dependency injection(DI)。这是一个通过对象定义与之相对应的依赖对象,即他们所需要使用的对象,利用构造函数参数,工厂方法的参数,或在创建对象之后设置其属性的一个过程。然后容器会在bean创建之后,将该bean所依赖的对象注入到该bean中。该过程就是将bean自身在构造函数中,对依赖对象的初始化或分配操作进行反转,因此也叫做控制反转。
包org.springframework.beans 和 org.springframework.context 两个包是Spring IoC容器的主要组成部分。BeanFactory接口提供了一套可以机械配置管理所有类型的对象。ApplicationContext是BeanFactory的一个实现类。ApplicationContext使得与Spring的AOP特性、国际化、时间传播、应用层级上下文(application-layer specific contexts)比如web应用中的WebApplicationContext等整合更简单。
简而言之,BeanFactory提供了可配置的框架和基本的功能,而ApplicationContext提供了更多企业级专用的功能。ApplicationContext是BeanFactory的超集,本章节中介绍Spring IoC容器就是专门使用ApplicationContext。更多关于BeanFactory 代替ApplicationContext的内容可参考Section 5.15, “The BeanFactory”。
在Spring中,对象是应用程序的主要组成部分,在Spring IoC容器中的对象也称作为Beans。一个Bean是一个已经初始化的、配置好的,同时被Spring IoC容器管理的一个对象。与此同时,一个bean也是应用程序中所有对象中的一个。Beans和被依赖的也都是对象,反应在被容器所使用的配置元数据中。