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

常用功能部分還是比較簡單的,可以參考官方文檔,應該一兩天足夠熟悉了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM