发表于: 2017-08-06 23:01:36
2 967
一、今天完成的事情:
感觉今天什么都没做,看了tusscany的API
@Service 的使用
服务接口可以被指定为Java接口。做为构件实现的Java类可以通过实现某个指定了服务合约的Java接口 来提供服务。因为一个Java类可以实现多个接口,而这些接口中有些并没有定义SCA服务,所以@Service 注解可以用于指示实现所提供的服务以及服务对应的Java接口定义。
如下是Java服务接口以及使用此接口提供服务的Java实现的一个例子:
接口: public interface HelloService { String hello(String message); }
实现类:
@Service(HelloService.class)
public class HelloServiceImpl implements HelloService {
public String hello(String message) { ... }
} 为了阐述的更加明了,下面给出了关于此实现的构件类型的XML描述。实际上,因为可以从Java类反 射得到,所以没有必要书写构件类型。 和接口相反,Java实现类本身也能定义构件提供的服务。这种情况下,@Service用于显式声明此实现 类定义了实现所提供的服务。同情形下,构件只能提供@Service声明的服务。如下所示:
@Service(HelloServiceImpl.class)
public class HelloServiceImpl implements AnotherInterface { public String hello(String message) { ... } … }
Component Context
package org.osoa.sca;
public interface ComponentContext { String getURI();
B getService(Class businessInterface, String referenceName);
ServiceReference getServiceReference(Class businessInterface, String referenceName);
ServiceReference createSelfReference(Class businessInterface);
ServiceReference createSelfReference(Class businessInterface, String serviceName); B
getProperty(Class type, String propertyName);
Java Common Annotations and APIs Specification 1.00 ,
Java 通用注解和 API 规范 v1.00<b, r="" extends="" callablereference> R cast(B target) throws IllegalArgumentException; RequestContext getRequestContext(); ServiceReference cast(B target) throws IllegalArgumentException; }
• getURI() – 返回SCA域中构件的绝对URI • getService(Class businessInterface, String referenceName) – 返回当前构 件定义的引用代理
• getServiceReference(Class businessInterface, String referenceName) – 返回当前构件定义的服务引用。
• createSelfReference(Class businessInterface) – 返回一个服务引用,用于调用 此构件上设计的服务。
• createSelfReference(Class businessInterface, String serviceName) – 返 回一个服务引用,用于调用此构件上设计的服务。serviceName显式声明要调用的服务名。
• getProperty (Class type, String propertyName) – 返回此构件定义的SCA属性 值。
• getRequestContext() – 返回当前SCA服务请求的上下问,如果没有当前请求或上下文无效 则返回null。
• cast(B target) –将一个类型安全的引用转换为一个可调用引用(CallableReference)。
二、遇到的问题:无
三、明天的计划:明天有面试。
四:收获:
总的来说tusscany的的各个composite文件和scallop里面的配置是需要我们注意的,这样我们才能知道我们使用来做什么。在各个时间的调用我们就知道我们是怎么我那成这个服务的。对于我们理解分布式系统是很有帮助的。对于分布式还是很需要我们去学习的,这个用来帮助我们解决我们的很多服务器处理问题是非常有必要的。
评论