Dubbox新特性--在Dubbo中开发REST风格的远程调用--快速入门

来源:互联网 发布:照片扫描软件手机版 编辑:程序博客网 时间:2024/05/22 03:19

快速入门

在dubbo中开发一个REST风格的服务会比较简单,下面以一个注册用户的简单服务为例说明。

这个服务要实现的功能是提供如下URL(注:这个URL不是完全符合REST的风格,但是更简单实用):

http://localhost:8080/users/register

而任何客户端都可以将包含用户信息的JSON字符串POST到以上URL来完成用户注册。

首先,开发服务的接口:

public class UserService {       void registerUser(User user);}

然后,开发服务的实现:

@Path("users")public class UserServiceImpl implements UserService {    @POST    @Path("register")    @Consumes({MediaType.APPLICATION_JSON})    public void registerUser(User user) {        // save the user...    }}

上面的服务实现代码非常简单,但是由于REST服务是要被发布到特定HTTP URL,供任意语言客户端甚至浏览器来访问,所以这里要额外添加了几个JAX-RS的标准annotation来做相关的配置:

@Path("users"):指定访问UserService的URL相对路径是/users,即http://localhost:8080/users

@Path("register"):指定访问registerUser()方法的URL相对路径是/register,再结合上一个@Path为UserService指定的路径,则调用UserService.register()的完整路径为http://localhost:8080/users/register

@POST:指定访问registerUser()用HTTP POST方法

@Consumes({MediaType.APPLICATION_JSON}):指定registerUser()接收JSON格式的数据。REST框架会自动将JSON数据反序列化为User对象

最后,在spring配置文件中添加此服务,即完成所有服务开发工作:

<!-- 用rest协议在8080端口暴露服务 --><dubbo:protocol name="rest" port="8080"/><!-- 声明需要暴露的服务接口 --><dubbo:service interface="xxx.UserService" ref="userService"/><!-- 和本地bean一样实现服务 --><bean id="userService" class="xxx.UserServiceImpl" />
0 0
原创粉丝点击