快速业务通道

使用Spring Framework设计和开发SCA组件,第1部分 - 三剑客 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
在 Spring 应用程序上下文文件中声明 SCA 服务、引用和 属性,无需使用在 Spring SCA 模式中定义的任何自定义 SCA 名称空间元素。 在 Spring 应用程序上下文文件中直接使用 SCA 引用和属性(无需自定义 SCA 名称空间)称为 SCA 服务、引用和属性的隐式声明。清单 3 中的calculator- context.xml 是一个例子。

在 calculator.composite 文件中定义的具有 addService、 subtractService、multiplyService 和 divideService 等名称的SCA 引用(参 见 清单 2)可以直接用作 Spring 应用程序上下文中的bean 引用(如 清单 3 所示)。calculator bean 属性可以设置为使用 SCA 引用名直接引用(设置 ref 属性的值)在 calculator.composite 中定义的SCA 引用(清单 2)。在这 种情况下,bean 引用的类型将由 Tuscany 运行时从 bean 类定义中进行内省( introspect),以验证它并将它与在复合集中定义的SCA 应用类型相匹配。

类似地,在 SCA 复合集中定义的SCA 属性可以直接用作 Spring 应用程序上 下文中的bean 引用。将 bean 属性设置(设置 ref 属性的值)为使用 SCA 属 性名称引用在 calculator.composite 中定义的SCA 属性。

当应用程序上下文中没有显式的<sca:service> 元素时,所有顶级的 bean 都将被公开为 SCA 服务,使用 bean 名称作为服务名称。任何内部 bean 或抽象 bean 都不会被用于隐式服务创建。当 Spring bean 实现类实现多个接 口时,这些 bean 可以被公开为单个或多个服务。您使用显式的 <sca:service> 元素,其中每个 <sca:service> 元素引用相同的 <bean> 元素,但 type 属性仅使用由 bean 提供的接口之一。在隐式创 建服务时,bean 被公开为单一服务,方法是将 bean 类本身声明为服务的一个 接口。

尽管 Apache Tuscany SCA 运行时支持使用隐式 SCA 服务、引用和属性,但 也有一些场景不适合使用隐式声明。

场景 1. 为集合使用隐式 SCA 引用和属性

在 Spring 中,<list/>、<set/>、<map/> 和 <props/> 元素允许分别定义和设置 Java Collection 类型 List、Set、 Map 和 Properties 的属性和参数。清单 5 中的示例 bean 定义演示了在 Spring 的<list/>、<set/> 和 <map/> 元素中使用隐式 SCA 引用和属性的局限性。

清单 5. 集合的隐式 SCA 引用

<bean id="moreComplexObject"  class="example.ComplexObject">   <!-- results in a setSomeList(java.util.List) call -->   <property name="someList">    <list>      <value>a list element followed by a  reference</value>      <ref bean="mySCAReference1" />    </list>   </property>   <!-- results in a setSomeMap(java.util.Map) call -->   <property name="someMap">    <map>      <entry>        <key>          <value>an entry</value>        </key>        <value>just some string</value>      </entry>      <entry>        <key>          <value>a ref</value>        </key>        <ref bean="mySCAReference2" />      </entry>    </map>   </property>   <!-- results in a setSomeSet(java.util.Set) call -->   <property name="someSet">   

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号