码迷,mamicode.com
首页 > 编程语言 > 详细

关于使用spring mvc或者resteasy构建restful服务的差别与比较

时间:2017-05-21 01:03:55      阅读:4102      评论:0      收藏:0      [点我收藏+]

标签:pat   val   post   contain   cti   default   了解   init   servlet   

resteasy 是 jboss的一个开源restful service实现参考。本文假设读者熟悉spring mvc,但是不了解或者没有使用过resteasy的用户。

其实一直以来,笔者实际都是使用spring mvc,对于研究resteasy没有兴趣。至于最近研究resteasy,纯属因为现在公司使用dubbox作为rpc框架,而dubbox使用resteasy作为REST实现库。

简单地说,resteasy核心就是一个servlet前端控制器,理念都一样。

应该来说,resteasy的优势在于相比spring mvc而言,更加的专注,简单。就大型应用而言,绝对是spring mvc占据优势。

就简洁性而言,应该来说在spring 4.0引入spring restcontroller之后,优势就没有那么明显了,应该来说3.2之前对restful还不那么有信心。

就像我们现在发现基本上mvc上spring mvc占据了绝大部分的新项目,估计以后resteasy也会小众化。

至于说resteasy为什么活下来,感觉上spring社区有个比较明显的倾向就是好像不怎么吃螃蟹,等到趋势比较明朗之后,要么就整合对方,要么就强行自己引入一套接口玩死对方。

resteasy是JAX-RS的参考实现之一,规范制定者是核心人员之一,所以概念和属于上基本上完全各种restful service教材上能够直接对应。spring mvc方面,就没有那么直接的对应了,估计是鄙视J2EE的一种商业手法。

就应用而言,如果restful作为rpc的实现机制,resteasy应该是有优势的,毕竟集成没有spring mvc那么多配置(当然spring cloud除外),但作为应用,估计干不过spring mvc。

使用resteasy,最好使用servlet 3.0以上的容器,比如tomcat 7+。

resteasy, 主要有三个核心依赖包:

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>${resteasy.version}</version>
</dependency>

<dependency>

<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>${resteasy.version}</version>
</dependency>

如此配置的话,Resteasy会使用ServletContainerInitializer初始化应用,自动扫描资源和暴露的服务。resteasy全局的一些配置参数可以通过web.xml中的<context-param>进行传递。关键的配置包括如下:

resteasy.servlet.mapping.prefix:设置Resteasy servlet映射的url匹配模式,默认为/*。

一般来说,使用resteasy的web.xml配置为:

<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/restful-services/*</url-pattern>
</servlet-mapping>

<context-param>
<param-name>resteasy.servlet.mapping.prefix</param-name>
<param-value>/restful-services</param-value>
</context-param>

如果要使用resteasy作为restful service的客户端框架的话,最少需要以下依赖:

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy.version}</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-client</artifactId>
<version>${resteasy.version}</version>
</dependency>

常用的注解并不是很多,主要包括:

@Path

@GET

@POST

@PathParam

@QueryParam

@HeaderParam

@CookieParam

@FormParam

@DefaultValue

@Context

常用功能部分还是比较简单的,可以参考官方文档,应该一两天足够熟悉了。

javadoc可参考http://docs.jboss.org/resteasy/docs/3.0.22.Final/javadocs/index.html。

关于使用spring mvc或者resteasy构建restful服务的差别与比较

标签:pat   val   post   contain   cti   default   了解   init   servlet   

原文地址:http://www.cnblogs.com/zhjh256/p/6883417.html

(0)
(1)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!