zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    Docker配置mysql
    Docker中部署Redis
    Linux上docker的安装
    tomcat启动报错:To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
    导出excel表格不能用ajax
    linux安装jdk
    第三次实验报告:使用Packet Tracer分析TCP连接建立过程
    第二次实验报告:使用Packet Tracer分析应用层协议
    第一次实验报告:使用Packet Tracer分析HTTP数据包
    PYTHON——多线程:队列Queue数据结构
  • 原文地址:https://www.cnblogs.com/duan2/p/13472007.html
Copyright © 2011-2022 走看看