添加中继服务依赖
<dependency>
<groupId>com.aliyun.angelia</groupId>
<artifactId>angelia-annotation</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.aliyun.angelia</groupId>
<artifactId>angelia-rpc</artifactId>
<version>1.0.0</version>
</dependency>
目前,消息队列的中继服务提供两种接口创建方式:
手动创建,具体请参考 Demo 程序中 generate 目录下的代码。
自动创建,可根据中继服务提供的 Maven 插件,自动生成 Async 接口以及 Oneway 接口,具体过程请参考下文详细介绍。
在使用 Maven 插件自动生成接口时,需要在 pom 文件中添加如下依赖:
<plugin>
<groupId>com.aliyun.relay</groupId>
<artifactId>codegen-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>generate-api</id>
<phase>compile</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
<execution>
<id>add-api</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
</execution>
</executions>
</plugin>
定义服务接口。
@RemoteService(name = "HelloService")
public interface HelloService {
@RemoteMethod
String sayHello(String arg);
}
运行插件。
输入命令 mvn compile,会在 src/generated/java 目录下生成支持异步和 Oneway 调用的接口,服务调用方(consumer)可以根据需要调用相关接口。
@javax.annotation.Generated(value = {"Generated By Relay CodeGen"}, date = "2017-03-22 18:51:37")
@RemoteService(name = "HelloService")
public interface HelloServiceGen extends HelloService {
@RemoteMethod(type = Type.ASYNC)
Promise<String> sayHelloAsync(String obj0);
@RemoteMethod(type = Type.ONEWAY)
void sayHelloOneway(String obj0);
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您提到的是如何在项目中添加阿里云中继服务(Relay Service)的依赖并使用 Maven 插件自动生成服务接口的过程。这里有几个关键步骤和概念解释:
添加Maven依赖:
pom.xml
文件中添加对阿里云中继服务相关库的依赖,以及代码生成插件的依赖。具体如您所示,包括了angelia-annotation
和angelia-rpc
用于中继服务的基础支持,以及codegen-maven-plugin
用于自动生成服务接口代码。配置Maven插件:
pom.xml
中配置codegen-maven-plugin
插件,指定其执行目标(goals),比如generate-api
用于生成接口代码,add-api
可能用于将生成的接口添加到项目的源代码路径中。这些配置帮助自动化地根据定义的服务接口生成异步和Oneway调用的实现代码。定义服务接口:
@RemoteService
注解标记您的服务接口,并通过@RemoteMethod
注解定义服务方法。例如,您展示的HelloService
接口有一个sayHello
方法,该方法接受一个字符串参数并返回一个字符串结果。运行Maven命令:
mvn compile
命令后,Maven会触发之前配置的插件执行。这将在src/generated/java
目录下生成接口的异步(Async)和单向(Oneway)调用版本。生成的代码如HelloServiceGen
类,包含了自动为sayHello
方法生成的异步和单向调用实现。使用生成的接口:
请注意,上述信息基于您提供的示例和描述,实际操作时应参考最新的阿里云文档和API,因为技术细节和版本可能会随时间更新。如果需要获取最新或更详细的指导,请访问阿里云官方文档站点查找相应产品的最新文档。