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, 主要有三個核心依賴包:
如此配置的話,Resteasy會使用ServletContainerInitializer初始化應用,自動掃描資源和暴露的服務。resteasy全局的一些配置參數可以通過web.xml中的
resteasy.servlet.mapping.prefix:設置Resteasy servlet映射的url匹配模式,默認為/*。
一般來說,使用resteasy的web.xml配置為:
如果要使用resteasy作為restful service的客戶端框架的話,最少需要以下依賴:
常用的注解並不是很多,主要包括:
@Path
@GET
@POST
@PathParam
@QueryParam
@HeaderParam
@CookieParam
@FormParam
@DefaultValue
@Context
常用功能部分還是比較簡單的,可以參考官方文檔,應該一兩天足夠熟悉了。
