欢迎来到天天文库
浏览记录
ID:1495740
大小:879.00 KB
页数:123页
时间:2017-11-12
《spring框架对控制反转(ioc)理论的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Chapter 3. IoC(控制反转)容器____转载自springframework3.1. 简介本章覆盖了Spring框架对控制反转(InversionofControl,IoC)[1]理论的实现。BeanFactory还是ApplicationContext?在实际应用中,用户有时候不知道到底是选择BeanFactory接口还是ApplicationContext接口。BeanFactory接口擅长于处理bean的初始化和配置,而ApplicationContext接口除了处理上述工作外,它还针对企业引用提供了许多基础支持,比如事务处理和AOP。简而
2、言之,一般把ApplicationContext接口作为首选。(至于这样做的原由,大家可参见章节内容。)org.springframework.beans及org.springframework.context包是SpringIoC容器的基础。BeanFactory提供的高级配置机制,使得管理各种对象成为可能。ApplicationContext是BeanFactory的扩展,功能得到了进一步增强,比如更易与SpringAOP集成、资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContex
3、t)。简而言之,BeanFactory提供了配制框架及基本功能,而ApplicationContext则增加了更多支持企业核心内容的功能。ApplicationContext完全由BeanFactory扩展而来,因而BeanFactory所具备的能力和行为也适用于ApplicationContext。本章分为两部份,第一部份讲解BeanFactory及ApplicationContext的基本原理,而第二部份则针对ApplicationContext的功能进行讲解。3.2. 基本原理-容器和bean在Spring中,那些组成你应用程序的主体(backbone
4、)及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。为什么使用bean?使用'bean'这个名字而不是'组件'(component)或'对象'(object)的动机源于Spring框架本身(它产生的部分原因就是对EnterpriseJavaBeans复杂性的一次解构)。3.2.1. 容器org.springframework.beans.factory.BeanF
5、actory是SpringIoC容器的实际代表者,IoC容器负责容纳此前所描述的bean,并对bean进行管理。在Spring中,BeanFactory是IoC容器的核心接口。它的职责包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。Spring为我们提供了许多易用的BeanFactory实现,XmlBeanFactory就是最常用的一个。该实现将以XML方式描述组成应用的对象以及对象间的依赖关系。XmlBeanFactory类将获取此XML配置元数据,并用它来构建一个完全可配置的系统或应用。SpringIoC容器3.2.1.1. 配置元数据从
6、上图可以看到,SpringIoC容器将读取配置元数据;并通过它对应用中各个对象进行实例化、配置以及组装。通常情况下我们使用简单直观的XML来作为配置元数据的描述格式。在XML配置元数据中我们可以对那些我们希望通过SpringIoC容器管理的bean进行定义。Note到目前为止,基于XML的元数据是最常用到的配置元数据格式。然而,它并不是唯一的描述格式。SpringIoC容器在这一点上是完全开放的。由于采用基于XML的配置元数据格式非常简单,因此本章节的大部分内容将采用该格式来说明SpringIoC容器的关键概念和功能同时你也可以在Section 3.11,“
7、基于注解(Annotation-based)的配置”这一节中看到Spring容器支持的另一种元数据格式的详细内容。多种资源SpringIoC容器可以通过多种途径来加载配置元数据,比如本地文件系统、JavaCLASSPATH等。对IoC容器基本原理的掌握将有利于我们对Chapter 4,资源中Resource抽象机制的理解。在大多数的应用程序中,并不需要用显式的代码去实例化一个或多个的SpringIoC容器实例。例如,在web应用程序中,我们只需要在web.xml中添加(大约)8行简单的XML描述符即可(参见Section 3.8.5,“Application
8、Context在WEB应用中的实例化”)。Sprin
此文档下载收益归作者所有