resteasy和springmvc的区别

resteasy 是 jboss的一个开源java api for restful service(JSR 311,sun 2008年发布,最新GA版本是2.0, JAX-RS 2.0 (JSR-339) and JAX-RS 1.1 (JSR-311))实现参考,其他的还包括Jersey(sun提供的参考实现)。本文假设读者熟悉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, 主要有三个核心依赖包:

org.jboss.resteasy resteasy-jaxrs ${resteasy.version} org.jboss.resteasy resteasy-jaxb-provider ${resteasy.version}

org.jboss.resteasy
resteasy-servlet-initializer
${resteasy.version}

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

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

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

Resteasy /restful-services/* resteasy.servlet.mapping.prefix /restful-services

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

org.jboss.resteasy resteasy-jaxrs ${resteasy.version} org.jboss.resteasy resteasy-client ${resteasy.version}

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

@Path

@GET

@POST

@PathParam

@QueryParam

@HeaderParam

@CookieParam

@FormParam

@DefaultValue

@Context

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

原文地址:https://www.cnblogs.com/duan2/p/13472007.html