内容摘要:本文是系列文章的第 2 部分,描述如何使用 Java 编程语言实现 SCA 组件以及组件实现可以如何充当其他服务的客户机。文中将对远程和本地服务的实现及其配置进行说明。将讨论获取服务的不同方法——引用注入和模块上下文。还将说明用于声明实现的可配置方面的各个 Java Annotation。
引言
SCA Java 实现模型提供了用于在 Java 中实现 SCA 组件的框架。组件实现可以提供服务,也可以充当其他服务的客户机。本文将说明 SCA Java 组件实现和非 SCA Java 组件实现可以如何获得对服务的访问和调用服务方法。在本文中,所有元数据都使用 Java 2 Standard Edition (J2SE) 5 提供的 Annotation 功能定义。不过,SCA 服务客户机和组件实现也可使用 J2SE 1.4。
基本组件实现模型
此模型描述本地或远程服务的实现以及特定于实现的配置属性。
实现服务
服务使用接口表示,而接口则是使用以下方法之一进行定义的:
Java 接口(SCA 的首选方式)
Java 类
从 Web 服务描述语言(Web Services Description Language,WSDL)端口类型生成的 Java 接口
Java 类组件实现会实现服务接口定义的所有操作,它使用 @Service Annotation 来指定服务通过使用 Java 实现而实现的服务接口。旨在用作服务实现的类并不必具有 @Service Annotation。@Service Annotation 具有两个特性:
Interfaces——此值是应该由其组件作为服务公开的接口或类对象的值。
Value——仅在提供单个服务接口时的快捷方式。没有特性的 @Service 没有意义。
以下代码片段显示了名为 PayrollDataService 的 Java 服务接口和名为 PayrollDataServiceImpl 的 Java 接口的 Java 实现类。
清单 1. Java 服务接口package services.payrolldata;
public interface PayrollDataService {
float getBasic(String employeeID);
float getvariablePay(String employeeID);
float getHRA(String employeeID);
float getProfessionalTax(String employeeID);
float getNetPay(String employeeID);
}
来源:developerWorks 作者:Sreedevi Penugonda 责编:豆豆技术应用