059-整合JAX-RS and Jersey

JAX-RS初步介紹

JAX-RS 是代表restful web service的一套規(guī)范API,JAX-RS規(guī)范基于JAVA編程語言累颂,它是用來創(chuàng)建Restful 風(fēng)格的web services服務(wù)的。JAX-RS使用一系列注解來簡化java開發(fā)琳状。

JAX-RS也稱JSR339 (全稱java specifications requests java規(guī)范提案第339個)绵跷,由jcp(java community process)組織經(jīng)過投票通過。

為了加深對jsr的理解笙僚,舉一個簡單的例子芳肌,jsr 330標(biāo)準(zhǔn)就是依賴注入的提案,已經(jīng)通過肋层。


規(guī)范說明

規(guī)范定義了一些常見的注解(見下表)亿笤,用來標(biāo)注一種資源文件為restfun風(fēng)格的資源文件:



Jersey

Jersey RESTful 框架是開源的RESTful框架, 實現(xiàn)了JAX-RS (JSR 311 & JSR 339) 規(guī)范。它擴展了JAX-RS 參考實現(xiàn)栋猖, 提供了更多的特性和工具净薛, 可以進(jìn)一步地簡化 RESTful service 和 client 開發(fā)。盡管相對年輕蒲拉,它已經(jīng)是一個產(chǎn)品級的 RESTful service 和 client 框架肃拜。與Struts類似,它同樣可以和hibernate,spring框架整合全陨。

由于ssm整合在市場的占有率太高爆班,所以很少一部分人去關(guān)注Jersey。所以網(wǎng)上有關(guān)于Jersey的介紹很少辱姨。但是它確實是一個非常不錯的框架柿菩。對于請求式服務(wù),對于GET,DELETE請求雨涛,你甚至只需要給出一個URI即可完成操作枢舶。



下面使用springboot整合jersey開發(fā)一個例子,首先創(chuàng)建項目:

可以看到測試接口只依賴一個jersey組件即可替久,要使用jersey凉泄,原來的web組件不用依賴了。



首先寫一個不帶參數(shù)的控制器:

然后來一個帶參數(shù)的:

我們這時候啟動服務(wù)蚯根,訪問接口后众,是無法訪問的:

兩個接口都是提示報404,找不到。原因是我們的控制器bean需要注冊到ResourceConfig中蒂誉,n那么什么是ResourceConfig教藻?


ResourceConfig

為了方便我們自定義應(yīng)用,Jersey提供了org.glassfish.jersey.server.ResourceConfig類來簡化我們的操作右锨。ResourceConfig類是Jersey自己實現(xiàn)了Application括堤,并且還實現(xiàn)了Configuration接口。

ResourceConfig類提供了非常多的方法來注冊JAX-RS組件绍移,比如自動的資源類掃描就是其提供的眾多功能之一悄窃。

我們想要使用ResourceConfig類來注冊我們自己的組件,只需要繼承ResourceConfig蹂窖,并且在構(gòu)造方法中轧抗,注冊我們自己的組件即可。


例如恼策,把控制器的幾個Bean注冊進(jìn)去可以這樣寫:

這時候鸦致,重啟服務(wù)潮剪,訪問即可成功:


如果控制器有多個涣楷,這樣寫顯然很麻煩,那么掃碼包路徑是更好的選擇:

上面的路徑是可以傳多個的抗碰,這時候重啟狮斗,發(fā)現(xiàn)可以訪問:

ResourceConfig中常用的方法如下:

packages:提供自動掃描組件,包括資源類弧蝇,Provider碳褒,F(xiàn)eature;如果有多個包需要掃描看疗,用分號隔開沙峻;

registerClasses:提供手動注冊組件,包括資源類两芳,Provider摔寨,F(xiàn)eature等,提供可變參數(shù)同時注冊多個怖辆;

register:提供手動注冊組件是复,包括Provider和Feature;

property:提供手動添加配置選項的方法竖螃;

例如:



代碼:https://gitee.com/blueses/spring-boot-demo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淑廊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子特咆,更是在濱河造成了極大的恐慌季惩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異画拾,居然都是意外死亡关摇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門碾阁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來输虱,“玉大人,你說我怎么就攤上這事脂凶∠芏茫” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵蚕钦,是天一觀的道長亭病。 經(jīng)常有香客問我,道長嘶居,這世上最難降的妖魔是什么罪帖? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮邮屁,結(jié)果婚禮上整袁,老公的妹妹穿的比我還像新娘。我一直安慰自己佑吝,他們只是感情好坐昙,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芋忿,像睡著了一般炸客。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上戈钢,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天痹仙,我揣著相機與錄音,去河邊找鬼殉了。 笑死开仰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宣渗。 我是一名探鬼主播抖所,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼痕囱!你這毒婦竟也來了田轧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤鞍恢,失蹤者是張志新(化名)和其女友劉穎傻粘,沒想到半個月后每窖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡弦悉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年窒典,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稽莉。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡瀑志,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出污秆,到底是詐尸還是另有隱情劈猪,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布良拼,位于F島的核電站战得,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏庸推。R本人自食惡果不足惜常侦,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贬媒。 院中可真熱鬧聋亡,春花似錦、人聲如沸掖蛤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚓庭。三九已至,卻和暖如春仅仆,著一層夾襖步出監(jiān)牢的瞬間器赞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工墓拜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留港柜,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓咳榜,卻偏偏與公主長得像夏醉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涌韩,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 文/rammer 劉減減與宋曉過是大學(xué)同學(xué)畔柔。 開學(xué)前,激動的個別同學(xué)便創(chuàng)了個群臣樱,放上了貼吧靶擦。偶爾或者專門...
    Old_rammer閱讀 420評論 1 4
  • 2018年2月26日腮考,堅持記錄293天 今天早上體重117.3斤,繼續(xù)堅持玄捕,向目標(biāo)110斤靠近踩蔚。晚上為117.3斤...
    曼殊斐兒_bcbb閱讀 148評論 0 1
  • 改一處而動全身 結(jié)構(gòu)臃腫 還是使用上面的例子。參數(shù)類在A中接收http請求參數(shù)的時候枚粘,需要三個屬性馅闽,然而在調(diào)用B的...
    JavaQ閱讀 198評論 2 2