WEB开发网
开发学院软件开发Java 使用 Spring Framework 设计和开发 SCA 组件,第 ... 阅读

使用 Spring Framework 设计和开发 SCA 组件,第 1 部分: 三剑客:Spring、SCA 和 Apache Tuscany

 2009-11-23 00:00:00 来源:WEB开发网   
核心提示: 组件实现的业务功能将由其他组件作为服务 提供,实现可以依赖其他组件提供的服务;这些依赖关系被称作引用,使用 Spring Framework 设计和开发 SCA 组件,第 1 部分: 三剑客:Spring、SCA 和 Apache Tuscany(6),实现可以有可设置的属性,即影响业务功能运转

组件实现的业务功能将由其他组件作为服务 提供。实现可以依赖其他组件提供的服务;这些依赖关系被称作引用。实现可以有可设置的属性,即影响业务功能运转的数据值。下面的例子展示了如何将 Spring beans 提供为 SCA 服务,以及如何在您的 Spring 应用程序上下文中配置 SCA 引用和 SCA 属性。

示例

我们以图 2 中的 CalculatorComponent 为例。它需要依赖其他组件(AddComponent、SubtractComponent、MultiplyComponent 和 DivideComponent)来实现所需的功能。在本例中,CalculatorComponent 的业务功能是使用 Spring beans 实现的,AddComponent 是使用 JavaScript 实现的,SubtractComponent 和 MultiplyComponent 是使用简单 POJO 实现的,而 DivideComponent 是使用 Groovy 脚本实现的。

图 2. 基于 Spring 的 CalculatorComponent

使用 Spring Framework 设计和开发 SCA 组件,第 1 部分: 三剑客:Spring、SCA 和 Apache Tuscany

下一步是创建一个名称为 calculator.composite 的 SCA 复合集(如清单 2 所示)来定义组件、服务、引用、属性声明以及这些元素之间的关联描述。详细信息请参见 下载 小节。

清单 2. calculator.composite

<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" 
   xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0" 
   targetNamespace="http://calc" 
   xmlns:c="http://calc" 
   name="Calculator"> 
 
  <component name="CalculatorComponent"> 
    <implementation.spring location="META-INF/spring/calculator-context.xml"/> 
    <service name="CalculatorService"> 
      <interface.java interface="calculator.CalculatorService"/> 
      <t:binding.rmi host="localhost" port="8099" 
            serviceName="CalculatorRMIService"/> 
    </service> 
    <reference name="addService" target="AddComponent" /> 
    <reference name="subtractService" target="SubtractComponent" /> 
    <reference name="multiplyService" target="MultiplyComponent"/> 
    <reference name="divideService" target="DivideComponent" /> 
  </component> 
 
  <component name="AddComponent"> 
    <t:implementation.script script="calculator/AddServiceImpl.js"/> 
  </component> 
 
  <component name="SubtractComponent"> 
    <implementation.java class="calculator.SubtractServiceImpl"/> 
  </component> 
 
  <component name="MultiplyComponent"> 
    <implementation.java class="calculator.MultiplyServiceImpl"/>     
  </component> 
 
  <component name="DivideComponent"> 
    <t:implementation.script script="calculator/DivideServiceImpl.groovy"/> 
  </component> 
 
</composite> 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 Spring Framework

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接