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
常用功能部分还是比较简单的,可以参考官方文档,应该一两天足够熟悉了。
resteasy和springmvc的区别的更多相关文章
- Struts2和SpringMVC的区别
简单谈一下Struts2和SpringMVC的区别,文章有所引用知乎所对应的答案数据,和所查看的其余资料数据,进行一个简单的汇总,后续查看时使用: 知乎解释链接为:https://www.zhihu. ...
- Spring与SpringMVC的区别
Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring. 简单点的话可以将SpringMVC类比于Strut ...
- spring springMVC Struts2 区别
Spring: Spring是IOC和AOP的容器框架,Spring是一个通用解决方案, 最大的用处就是通过Ioc/AOP解耦, 降低软件复杂性, 所以Spring可以结合SpringMVC等很多其他 ...
- Intellij IDEA环境配置RestEasy,SpringMVC+RestEasy
在SpringMvc中配置RestEasy,需要以下步骤 1.通过maven导入restEasy所需要的jar包 2.在web.xml文件中添加相应的配置. 3.编写服务. 具体步骤: 1.通过mav ...
- 面试:----Struts和springmvc的区别--区别上
SpringMVC和Struts2的区别 1核心控制器(前端控制器,预处理控制器):对于使用过MVC框架的人来说这个词应该不会陌生.核心控制器的主要用途处理所有的请求.然后对那些特殊的请求.统一的进行 ...
- spring中的web上下文,spring上下文,springmvc上下文区别(超详细)
web上下文(Servlet context),spring上下文(WebApplication Context),springmvc上下文(mlWebApplicationCont)之间区别. 上下 ...
- springBoot 与 springMVC的区别
springMVC 1.是基于Servlet的一个MVC框架(DispatcherServlet.ModelAndView.ViewResolver),解决web开发问题 缺点是 :配置复杂 要简化使 ...
- JSF/SpringMVC/Struts2区别与比较
转自SpringMVC与Struts2区别与比较总结 1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文, ...
- spring 和springMVC的区别
springmvc只是spring其中的一部分.spring 可以 支持 hibernate ,ibatis ,JMS,JDBC 支持事务管理, 注解功能,表达式语言,测试springmvc 就是一个 ...
- 【转载】27.SpringBoot和SpringMVC的区别
版权声明:本博客为记录本人JAVA自学之路而开,内容大多从网上学习与整理所得,若侵权请告知! https://blog.csdn.net/u014590757/article/details/7960 ...
随机推荐
- 5W1H聊开源之Who和How——谁、如何参与开源?
上次Who的主体是谁"发明"了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中? 很多人都以为参与开源是一件 ...
- #根号分治,分块,dfs序#洛谷 7710 [Ynoi2077] stdmxeypz
题目传送门 分析 首先把距离变成深度,用dfs序转成区间问题,考虑分块,散块直接改 问题是整块,如果模数比较大,可以以深度为第一维下标差分标记,这样查询时就可以前缀和知道答案 如果模数比较小,那么给该 ...
- #搜索,树剖,set#洛谷 3322 JZOJ 4049 [SDOI2015]排序&洛谷 3320 JZOJ 4050 [SDOI2015]寻宝游戏
洛谷 3322 [SDOI2015]排序 题目 小A有一个\(1\sim 2^N\)的排列\(A[1\sim 2^N]\),他希望将A数组从小到大排序,小A可以执行的操作有\(N\)种,每种操作最多可 ...
- #虚树,树形dp#洛谷 4103 [HEOI2014]大工程
题目 分析 建一棵虚树,然后树形dp,维护最长/短链和次长/短链, 对于第一个就是统计每条边有多少个点对经过就可以了 代码 #include <cstdio> #include <c ...
- 使用OHOS SDK构建zlib
参照OHOS IDE和SDK的安装方法配置好开发环境. 从gitee下载源码,当前最新的提交记录ID为04f42ceca40f73e2978b50e93806c2a18c1281fc. 执行如下命令: ...
- Windows wsl2安装Ubuntu
wsl(Windows Subsystem for Linux)即适用于Windows的Linux子系统,是一个实现在Windows 10 / 11上运行原生Linux的技术. wsl2 为其迭代版本 ...
- Python3中pip3命令的用法介绍及安装配置
第一节:pip3是什么?有啥用? pip3:(Python3 Install Package ),这个英文全称是我为了更好的理解这个命令这么叫的,官方没有这对个命令的全称的解释:) python 支持 ...
- CentOS 6.5编译安装httpd-2.4.7
CentOS 6.5编译安装httpd-2.4.7 CentOS 编译安装 Apache 2.4 准备: [root@NFSServer ~]# yum groupinstall "Deve ...
- mysql 重新整理——sql 执行语句的顺序[五]
前言 盗图: 其实在复杂的语句中,需要我们逐步去分析,然后呢,我们了解一些优化器到底是如何帮我们优化的,就知道到底是mysql怎么执行代码. 我把以前的丢了,后续补全.
- setTimeout(fn, 0) // it works - JavaScript 事件循环 动画演示
在前端代码中很经常看到使用 setTimeout(fn, 0),如下面代码所示,乍一看很多余,但是移除了可能会出现一些奇奇怪怪的问题.要解释这个就需要理解 事件循环(Event Loop),下面会通过 ...