快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
<set>      <value>just some string</value>      <ref bean="mySCAReference3" />    </set>   </property> </bean>

假设名为 someList 的bean 属性的bean 实现被定义为清单 6 的内容。List 被声明为泛型,以接收其集合中任何类型的Java 类。

清单 6. someList 属性的bean 实现

private List<?> someList; public List<?> getSomeList() {    return someList; } public     void setSomeList(List<?> someList) {    this.someList = someList; }

在此场景中,Apache Tuscany 运行时无法内省此集合所需的SCA 引用对象的 准确类型(类型 mySCAReference1、mySCAReference2 和 mySCAReference3)。 必需的SCA 引用注入将失败。当 someMap 和 someSet 属性被声明为接受其集合 中任何类型的Java 类时,相同的规则也适用于它们。建议您总是显式地使用 <sca:reference> 元素声明 SCA 引用,并在这类场景中使用必需的name 和 type 属性。

使用Spring Framework设计和开发SCA组件,第1部分 - 三剑客(6)

时间:2010-12-03 IBM Ramkumar Ramalingam

场景 2. 为构造函数注入使用隐式 SCA 引用和属性

Spring 中的构造函数注入允许您通过类构造函数注入依赖关系。为了减少潜 在的歧义,Spring 建议只要在 bean 实现中定义了多个构造函数,就为 <constructor-arg> 元素适当使用 index 和 type 属性。

Tuscany 还建议为 <constructor-arg> 元素使用 index 和 type 属 性,为所有构造函数注入场景显式声明相关的SCA 引用,即使 bean 只有一个构 造函数。

例如,假设您想要使用构造函数为 calculator bean 注入必需的依赖关系( 必需的SCA 引用)。您应该像清单 7 所示的那样定义 bean。在 Tuscany 中, 不支持为构造函数使用隐式 SCA 引用和属性。

清单 7. 针对 calculator bean 的构造函数注入

<beans  xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"      xmlns:sca="http://www.springframework.org/schema/sca"      xsi:schemaLocation="      http://www.springframework.      org/schema/beans      http://www.springframework.      org/schema/beans/spring-beans.xsd      http://www.springframework.      org/schema/sca        http://www.osoa.org/xmlns /sca/1.0/spring-sca.xsd">    <bean id="Calculator"  class="calculator.CalculatorServiceImpl">     <constructor-arg index="0" type="calculator.AddService"  ref="addService"/>     <constructor-arg index="1" type="alculator.SubtractService"              ref="subtractService"/>     <constructor-arg index="2" type="calculator.MultiplyService"               ref="multiplyService"/>     <constructor-arg index="3" type="calculator.DivideService"  ref="divideService"/>    </bean>    <sca:reference name="addService"  type="calculator.AddService"/>    <sca:reference name="subtractService"  type="calculator.Su

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号