- 1、本文档共64页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04.Spring的IoC容器之BeanFactory
20 Spring 的 IoC 容器
Spring的IoC容器之BeanFactory
本章内容
? 拥有BeanFactory之后的生活
? BeanFactory的对象注册与依赖绑定方式
? BeanFactory的XML之旅
第 4 章
? 容器背后的秘密
我们前面说过,Spring的IoC容器是一个IoC Service Provider,但是,这只是它被冠以IoC之名的部
分原因,我们不能忽略的是“容器”。Spring的IoC容器是一个提供IoC支持的轻量级容器,除了基本
的IoC支持,它作为轻量级容器还提供了IoC之外的支持。如在Spring的IoC容器之上,Spring还提供了
相应的AOP框架支持、企业级服务集成等服务。Spring的IoC容器和IoC Service Provider所提供的服务
之间存在一定的交集,二者的关系如图4-1所示。
图4-1 Spring的IoC容器和IoC Service Provider之间的关系
注意 本章将主要关注Spring的IoC容器提供的IoC相关支持以及衍生的部分高级特性。而IoC
容器提供的其他服务将在后继章节中陆续阐述。
Spring提供了两种容器类型:BeanFactory和ApplicationContext。
? BeanFactory。基础类型IoC容器,提供完整的IoC服务支持。如果没有特殊指定,默认采用延
迟初始化策略(lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对
该受管对象进行初始化以及依赖注入操作。所以,相对来说,容器启动初期速度较快,所需
要的资源有限。对于资源有限,并且功能要求不是很严格的场景,BeanFactory是比较合适的
IoC容器选择。
? ApplicationContext。ApplicationContext在BeanFactory的基础上构建,是相对比较高
级的容器实现,除了拥有BeanFactory的所有支持,ApplicationContext还提供了其他高级
3.3 小结 21
特性,比如事件发布、国际化信息支持等,这些会在后面详述。ApplicationContext所管理
的对象,在该类型容器启动之后,默认全部初始化并绑定完成。所以,相对于BeanFactory来
说,ApplicationContext要求更多的系统资源,同时,因为在启动时就完成所有初始化,容
器启动时间较之BeanFactory也会长一些。在那些系统资源充足,并且要求更多功能的场景中,
ApplicationContext类型的容器是比较合适的选择。
2
3 通过图4-2,我们可以对BeanFactory和ApplicationContext之间的关系有一个更清晰的认识。
4
5
6
7
图4-2 BeanFactory和ApplicationContext继承关系
8
注意 ApplicationContext间接继承自BeanFactory,所以说它是构建于BeanFactory之上
的IoC容器。此外,你应该注意到了,ApplicationContext还继承了其他三个接口,它们之间
的关系,我们将在第5章中详细说明。 9
另外,在没有特殊指明的情况下,以BeanFactory为中心所讲述的内容同样适用于Applica-
tionContext,这一点需要明确一下,二者有差别的地方会在合适的位置给出解释。 10
BeanFactory,顾名思义,就是生产Bean的工厂。当然,严格来说,这个“生产过程”可能不像
说起来那么简单。既然Spring框架提倡使用POJO,那么把每个业务对象看作一个JavaBean对象,或许
更容易理解为什么Spring的IoC基本容器会起这么一个名字。作为Spring提供的基本的IoC容器,
BeanFactory可以完成作为IoC Service Provider的所有职责,包括业务对象的注册和对象间依赖关系的
绑定。
11
12
BeanFactory就像一个汽车生产厂。你从其他汽车零件厂商或者自己的零件生产部门取得汽车零
件送入这个汽车生产厂,最后,只需要从生产线的终点取得成品汽车就可以了。相似地,将应用所需
的所有业务对象交给BeanFactory之后,剩下要做的,就是直接从BeanFactory取得最终组装完成并
且可用的对象。至于这个最终业务对象如何组装,你不需要关心,BeanFactory会帮你搞定。
13
14
所以,对于客户端来说,与BeanFactory打交道其实很简单。最基本地,BeanFactory肯定会公
开一个取得组装完成的对象的方法接口,就像代码清单4-1中真正的B
您可能关注的文档
- %Krause ICML2010 - Submodular dictionary selection for sparse representation.pdf
- (ISP图的画法可参考)等电点沉淀法回收蛋白的特性.pdf
- (MX-GC控制柜)).pdf
- (ppt) IBM Content Based Copy Detection System for TRECVID 2009.pdf
- (ppt)BEA Weblogic Server8.1 Web Service.pdf
- (Reactive Violet 5R) decolorising native acclimatised bacterial consortia.pdf
- (universal.pdf
- (全6章)HL7 v3基础 Foundation完整版.pdf
- (初三英语测试题二).doc
- (天泉多级泵样本)TDLF-27p.pdf
- 护理学相关知识复习测试卷共三套.doc
- 护理学相关知识复习试题含答案(3套).doc
- 2025届高考语文复习:补写句子 课件.pptx
- 气压带和风带对气候的影响(第1课时)(教学设计).docx
- 气压带和风带对气候影响教学设计2024-2025学年高中地理人教版(2019)选择性必修1.docx
- 《故都的秋》课件 2024-2025学年统编版高中语文必修上册.pptx
- 《屈原列传》课件 2024-2025学年统编版高中语文选择性必修中册.pptx
- 《巫溪家乡文化》课件-2024-2025学年高一语文同步备课课件(统编版必修上册).pptx
- 《苏武传》课件 2023-2024学年统编版高中语文选择性必修中册.pptx
- 郑州中控ZKTime8.3 WEB考勤软件培训文档.pptx
文档评论(0)