浏览 2256 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-15
本文翻译出处 http://tapestry.apache.org/tapestry5/tapestry-core/guide/appstate.html 本人翻译目的是用来学习Tapestry5的,共享出来希望大家批评指正。计划持续翻译。 chinajavawolf
导言
在很多情况里,Tapestry必需提供一个相配的字段域类型给可用的IoC服务。
如果只有一个单独的服务注册为可执行的服务,Tapestry将利用这个服务。
当有不只一个服务的时候,必须消除歧义确定是哪个服务被注册。为了要消除所有的歧义(所有注入的),你必须从服务接口创建一个别名指向特殊的服务。
这里采取提供别名服务的形式。
别名服务有另外的意图:首先,他允许基于应用模式现场替换注入服务。当前,只有”servlet”模式,但以后将包括"portlet"和可能的"offline"模式
其次,共事的AliasOverrides服务配置允许现场替换特殊的服务,没有其余注册在IoC内的网络服务的烦扰。
贡献的别名
要为别名服务贡献一个新的服务,你必须首先确定一个逻辑名。通常,这是个被服务实现了的服务接口名。
然后你可以向基础服务贡献配置
上面的例子是一个典型的模式;服务被公开注入到贡献者(contributor)方法,使用外在的InjectService标注。一个贡献(contribution)成为提供的服务类型。
注意contribution不能有服务。你仅仅可以在contribution方法内实例化一个对象,并且贡献他。
贡献AliasOverrides
要替换一个服务,你需要知道服务接口的名字。
随后你可以提供一个contribution 给AliasOverrides服务配置,就像前面例子中描述的。
作为代理提供的对象将掩饰默认的contribution。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |