<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0069)http://www.springframework.net/doc-latest/reference/html/objects.html -->
<title>第四章 对象、对象工厂和应用程序上下文</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="../img/html.css" type="text/css" rel="stylesheet">
<meta content="MSHTML 6.00.5450.4" name="GENERATOR">
<link title="The Spring.NET Framework" href="file:///D:/My%20Documents/WorkBooks/dotNet%E5%AD%A6%E4%B9%A0/Spring.NET/Doc_EN1.1/PartI/index.html" rel="start">
<link title="Part I. Core Technologies" href="file:///D:/My%20Documents/WorkBooks/dotNet%E5%AD%A6%E4%B9%A0/Spring.NET/Doc_EN1.1/PartI/pt01.html" rel="up">
<link title="Part I. Core Technologies" href="file:///D:/My%20Documents/WorkBooks/dotNet%E5%AD%A6%E4%B9%A0/Spring.NET/Doc_EN1.1/PartI/pt01.html" rel="prev">
<link title="Chapter 5. The IObjectWrapper and Type conversion" href="file:///D:/My%20Documents/WorkBooks/dotNet%E5%AD%A6%E4%B9%A0/Spring.NET/Doc_EN1.1/PartI/objects-misc.html" rel="next">
<style type="text/css">
<!--
.STYLE1 {font-size: 12px}
.STYLE2 {font-size: 12}
.STYLE3 {font-family: "宋体"}
-->
</style>
</head>
<body style="color: black; background-color: white;" alink="#0000ff" link="#0000ff" vlink="#840084">
<div style="border: 1px solid black; height: 73px; background-color: white;" xmlns="http://www.w3.org/TR/xhtml1/transitional"><a title="The Spring Framework" style="border: medium none ;" href="http://www.springframework.org/"><img style="border: medium none ;" src="../img/xdev-spring_logo.jpg"></a><a title="Interface21 - Spring from the Source" style="border: medium none ;" href="http://www.interface21.com/"><img style="border: medium none ; right: 42px; padding-top: 5px; position: absolute;" src="../img/i21-banner-rhs.jpg"></a></div>
<div class="chapter" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a name="objects"></a>第四章. 对象、对象工厂和应用程序上下文</h2>
</div>
</div>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both;"><a name="objects-introduction"></a>4.1. 简介</h2>
</div>
</div>
</div>
<p><span class="emphasis"><em>(Available in 1.0)</em></span></p>
<p>Spring.Core程序集是Spring.NET控制反转(IoC,也叫做依赖注入)功能的基础(可参见<a href="../Chapter03.htm#background-ioc" title="3.1节,控制反转">3.1节,控制反转</a>,其中提到了一些相关的参考资源)。Spring.Core程序集中的<a href="http://www.springframework.net/doc/api/html/Spring.Objects.Factory.IObjectFactory.html" target="_top">IObjectFactory</a>接口为Spring.NET提供了一种高级的配置机制,可以用所有可能的存储介质保存任意对象的配置信息。同样位于此程序集中的<a href="http://www.springframework.net/doc/api/html/Spring.Context.IApplicationContext.html" target="_top">IApplicationContext</a>接口则扩展了IObjectFactory,增加了面向方面编程(AOP)和消息资源处理(用于国际化)等功能。</p>
<p>简单的说,IObjectFactory接口提供了配置框架和基本功能,IApplicationContext接口又在其基础上增加了许多企业级特性。可以说IApplicationContext是IObjectFactory的一个超集,具备IObjectFactory所有的功能与行为。</p>
<p>本章分为两部分,第一部分讨论IObjectFactory和IApplicationContext接口共通的基本原理,第二部分单独阐述IApplicationContext接口特有的功能。</p>
<p>Spring.NET或IoC容器的新用户可以考虑从<a href="../PartVI/Chapter25.htm" title="第二十五章,IoC快速入门">第二十五章,IoC快速入门</a>看起,其中讲到了些入门级的例子,介绍了本章许多内容的用法。如果一开始理解不了,也不要着急——这些例子只是用来让读者了解如何将Spring.NET与实际开发相结合的,看完了这些例子,再回过头来阅读本章的内容就会容易的多了。</p>
</div>
<div class="sect1" lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both;"><a name="objects-basics"></a>4.2. IObjectFactory,IApplicationContext和IObjectDefinition接口介绍</h2>
</div>
</div>
</div>
<div class="sect2" lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a name="objects-factory"></a>4.2.1. IObjectFactory和IApplicationContext</h3>
</div>
</div>
</div>
<p>IObjectFactory是初始化、配置及管理对象的实际容器(按:它是所有容器的父接口)。对象间通常会相互协作,我们也可以说它们相互间具有依赖性。这些依赖性可以通过IObjectFactory的配置数据反映出来。(但某些依赖性从配置数据中是看不到的,比如运行时对象之间的方法调用。)</p>
<p>Spring.Objects.Factory.IObjectFactory接口有多个实现类。最常用的是Spring.Objects.Factory.Xml.XmlObjectFactory。关于如何在代码中与IObjectFactory交互,请参见<a href="#objects-factory-client" title="4.7节,与IObjectFactory交互">4.7,与IObjectFactory交互</a>。IApplicationContext接口所定义的增强功能将在<a href="#context-introduction" title="4.11,IApplicationContext简介">4.11,IApplicationContext简介</a>中讨论。</p>
<p>前文(按:第一章)提到过,Spring.NET框架的核心原则是非侵入性。简单的说,就是应用程序的代码不需要对Spring.NET的API有任何依赖。然而,如果要充分利用IoC容器的功能(通过IObjectFactory或Spring.Context.IApplicationContext接口),有时候还<strong>必须</strong>要获取这两个接口的引用。为此,可以在代码中使用new操作符来显式创建容器(按:即原文所说的IApplicationContext或IObjectFactory,后文中,举凡涉及到含义为“管理对象的容器”而非特指接口的名称时,将原文中的IObjectFactory或IApplicationContext称为“容器”或“IoC容器”);另外一种方式则更为简捷:在.NET应用程序的配置文件中用自定义配置节点来配置容器。一旦容器建立,就不需要在代码中与之发生显式的互操作了(按:这个说法并不准确,比如对象的获取就必须通过IApplicationContext,此处的含义指不需要进行任何与对象创建和管理相关的工作)。</p>
<p>下面代码创建了一个XmlObjectFactory的实例,XmlObjectFactory是IObjectFactory的实现类之一。我们假定在objects.xml文件中定义了要装配(按:装配的概念见后文)和发布的服务对象。将该文件的位置信息传递给XmlObjectFactory的构造器,即可创建一个容器,参见如下代码:</p>
<pre class="programlisting">
[C#]
IResource input = new FileSystemResource ("objects.xml");
IObjectFactory factory = new XmlObjectFactory(input);
</pre>
<p>代码中使用了Spring.NET的<a href="http://www.springframework.net/doc/api/html/Spring.Core.IO.IResource.html" target="_top">IResource</a>接口。IResource能以简单统一的方式访问许多可用System.IO.Stream表示的IO资源。在<a href="Chapter06.htm" title="第六章, IResource接口">第六章, IResource接口</a>中将对IResource接口展开讨论。这些IO资源一般是独立的文件或者URL,但也可以内嵌在.NET程序集内部。通过IResource接口,可以用简单的URI格式来描述资源的位置,比如可用file://object.xml来表示一个文件。同时,IResource也支持很多其它协议,如http等。</p>
<p>前文提到IApplicationContext�
没有合适的资源?快使用搜索试试~ 我知道了~
spring.Net中文文档
共62个文件
htm:41个
png:12个
gif:5个
需积分: 0 20 下载量 157 浏览量
2008-11-16
10:52:28
上传
评论
收藏 596KB RAR 举报
温馨提示
关于spring.Net英文文档翻译 我概览过一遍了,对spring想深入了解的话很适合
资源详情
资源评论
资源推荐
收起资源包目录
Spring.NET_Document_CN_070528.rar (62个子文件)
img
movie-finder.gif 5KB
i21-banner-rhs.jpg 10KB
xdev-spring_logo.jpg 37KB
5.png 348B
tx.png 81KB
tip.png 1KB
remoting-startup.gif 53KB
1.png 329B
aop-chain.png 40KB
remoting-solution.gif 11KB
html.css 3KB
spring.windows-service.png 29KB
DataAccessException.gif 7KB
Thumbs.db 40KB
2.png 353B
warning.png 1KB
4.png 345B
link.png 376B
overview.gif 20KB
3.png 350B
note.png 1KB
PartV
Chapter24.htm 9KB
Index.htm 3KB
Chapter03.htm 4KB
PartVI
Chapter27.htm 26KB
Index.htm 4KB
Chapter26.htm 45KB
Chapter31.htm 5KB
Chapter25.htm 39KB
Chapter30.htm 4KB
Chapter29.htm 4KB
Chapter28.htm 4KB
Index.htm 78KB
PartVII
Chapter32.htm 14KB
Index.htm 3KB
Chapter01.htm 4KB
PartIII
Index.htm 3KB
Chapter19.htm 90KB
Chapter02.htm 10KB
PartI
Chapter08.htm 6KB
Chapter12.htm 90KB
Chapter11.htm 37KB
Chapter09.htm 8KB
Index.htm 4KB
Chapter07.htm 11KB
Chapter04.htm 198KB
Chapter05.htm 17KB
Chapter06.htm 13KB
Chapter10.htm 48KB
Chapter13.htm 8KB
AppendixA.htm 31KB
PartIV
Chapter22.htm 21KB
Chapter23.htm 29KB
Index.htm 3KB
Chapter21.htm 11KB
Chapter20.htm 26KB
PartII
Chapter15.htm 10KB
Chapter16.htm 13KB
Chapter14.htm 51KB
Index.htm 3KB
Chapter17.htm 52KB
Chapter18.htm 3KB
共 62 条
- 1
楼主
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0