Java中RESTful 的實(shí)現(xiàn)框架
Web Service更多是一種標(biāo)準(zhǔn),而不是一種具體技術(shù)。不同的平臺(tái),不同的語言大都提供WebService的開發(fā)實(shí)現(xiàn),在Java領(lǐng)域,WebService的框架很多,例如:Axis2,Xfire,CXF和Java6自帶的WebService引擎。
在Spring框架支持REST之前,人們會(huì)使用其他幾種實(shí)現(xiàn)技術(shù)來創(chuàng)建Java的RESTful Web Services,如Restlet、RestEasy和Jersey。Jersey是其中最值得注意的,它是JAX-RS(JSR 311)的參考實(shí)現(xiàn)。
基于RESTful 的幾種實(shí)現(xiàn)
1.1.? Rails
Ruby on Rails是新興的敏捷Web開發(fā)框架,在動(dòng)態(tài)語言Ruby的支持下,Rails以新鮮的視角告訴我們Web開發(fā)是簡(jiǎn)單而快樂的。Rails對(duì) RESTful Web Service的開發(fā)作了極大的封裝和簡(jiǎn)化,這對(duì)開發(fā)人員來說是一個(gè)強(qiáng)大的工具。而且即將發(fā)布的Rails 2.0將全面基于REST。
1.2.? Axis2
Apache Axis2是傳統(tǒng)的Java Web Service框架Axis的下一代版本。從最初的Apache Axis和Apache SOAP到目前的Axis2,經(jīng)歷了大量變革和發(fā)展。相對(duì)以前的版本,Axis2更靈活、更高效、更簡(jiǎn)單。作為Java端官方和傳統(tǒng)Web Service框架,在REST與SOAP的硝煙彌漫、戰(zhàn)火紛飛的狀況下,Axis2嘗試同時(shí)支持SOAP和REST,采用了WSDL2.0中將REST 與Web服務(wù)結(jié)合的工作成果。
1.3.? Django
Django是基于python語言的敏捷Web和Web服務(wù)開發(fā)框架,它的設(shè)計(jì)與Rails十分類似,只不過簡(jiǎn)化和封裝稍少一些。
1.4.? JSR 311: JAX-RS
JAX-RS(JSR 311,Java API for XML-RESTful Web Services)是基于annotation的實(shí)現(xiàn)方式,我們通過annotation的方式把一個(gè)java class標(biāo)注成RESTful web service,并把它的方法標(biāo)注成HTTP的CRUD。相關(guān)的annotation有@path, @Produces,@GET, @POST, @DELETE, @PUT, @PathParam等,對(duì)java開發(fā)人員在使用起來比較方便。
目前已經(jīng)有很多現(xiàn)成的實(shí)現(xiàn),比如Jersey, Apache CXF, JBoss RESTEasy
Jersey:http://jersey.java.net/nonav/documentation/latest/chapter_deps.html
Apache CXF:http://cxf.apache.org/download.html
1.5.? 其他支持RESTful的Java框架
Restlet(http://www.restlet.org/)
Cetia4(https://cetia4.dev.java.net/)
Apache Axis2(http://http://ws.apache.org/axis2/)
sqlREST(http://sqlrest.sourceforge.net/)
REST-art(http://rest-art.sourceforge.net/)
轉(zhuǎn)自:http://cuizhihua.iteye.com/blog/2041611