從零開始學(xué)Spring Boot-02

上一篇講了Spring Boot項目再IDEA上的項目結(jié)構(gòu),以及注解@SpringBootApplication趾唱。因為現(xiàn)在大多數(shù)項目都是前后端分離,所以今天講的就是在Spring Boot的項目下創(chuàng)建簡單的Get接口蜻懦。

首先甜癞,創(chuàng)建一個類,因為默認(rèn)的MVC結(jié)構(gòu)就是Model—View—Controller宛乃,所以我們創(chuàng)建了一個TestController悠咱,具體如下圖

這里的五個Get接口基本上包含了一般的Get請求,那我們從頭慢慢開始講解征炼。

@RestController

@RestController析既,這個注解是什么意思呢。簡單的理解就是@ResponseBody + @Controller

->如果只是使用@RestController注解Controller谆奥,則Controller中的方法無法返回jsp頁面眼坏,配置的視圖解析器InternalResourceViewResolver不起作用,返回的內(nèi)容就是Return 里的內(nèi)容酸些。

例如:本來應(yīng)該到index.jsp頁面的空骚,則其顯示文本index.

->如果需要返回到指定頁面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行擂仍。

->如果需要返回JSON囤屹,XML或自定義mediaType內(nèi)容到頁面,則需要在對應(yīng)的方法上加上@ResponseBody注解逢渔。

@RequestMapping("/demo")

@RequestMapping是一個用來處理請求地址映射的注解肋坚,可用于類或方法上。用于類上肃廓,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑智厌。圖中的就是表示這個類下面的所有方法父路徑就是http://*****/demo/*****

RequestMapping一共有六個注解。

->value盲赊、method

value:指定請求的實際地址铣鹏,指定的地址可以是URI Template 模式(后面將會說明)

method:指定請求的method類型, GET哀蘑、POST诚卸、PUT葵第、DELETE等

->consumes、produces

consumes:指定處理請求的提交內(nèi)容類型(Content-Type)合溺,例如application/json, text/html

produces:指定返回的內(nèi)容類型卒密,僅當(dāng)request請求頭中的(Accept)類型中包含該指定類型才返回

->params、headers

params:指定request中必須包含某些參數(shù)值是棠赛,才讓該方法處理

headers:指定request中必須包含某些指定的header值哮奇,才能讓該方法處理請求

通過例子可以更直觀的解釋各個屬性的含義

1、value睛约、method

value指定的是UR值鼎俘,可定為三類:

a、普通的地址辩涝,類似"/api"

@RequestMapping(value="/testGet1",method= RequestMethod.GET)

publicStringTest(){

return"testGet";

}

b贸伐、含有變量的值,可以參考restful 類型的api類似“/api/{id}”

@RequestMapping(value="/testGet1/{id}",method= RequestMethod.GET)

publicStringTest(@PathVariableString id){

returnid;

}

c膀值、含有正則表達(dá)式的一類值,類似的"/api/{version:[a-z]}"

@RequestMapping(value="/testGet1/{version:[a-z]}",method= RequestMethod.GET)

publicStringTest(@PathVariableString version){

returnversion;

}

2误辑、consumes沧踏、produces

->consumes:表示方法僅處理request 中Content-Type 為指定值的請求

->produces:表示方法僅處理request中Accept頭中包含了指定值的請求

@RequestMapping(value="/testGet2",method= RequestMethod.GET,consumes="application/json",produces="application/json")

publicStringTest2(String id){

returnid;

}

表示,這個接口僅處理Content-Type='application/json'巾钉,Accept頭中包含了application/json的請求

3翘狱、params、headers

->params:表示請求參數(shù)中要有指定的key-value值才能處理該請求

->headers:表示請求頭中要包含指定的key-value值才能處理該請求

@RequestMapping(value="/testGet2",method= RequestMethod.GET,params="testKey=testValue",headers="Referer=http://weixiaochu.cn/")

publicStringTest2(){

return"";

}

例子表示只有當(dāng)請求頭中包含Referer=http://www.weixiaochu.cn/砰苍,請求參數(shù)中包含testKey潦匈,并且testKey的值是testValue值時,這個請求參能被處理

看完RequestMapping的注解赚导,我們來介紹一下關(guān)于Get請求接收參數(shù)的問題茬缩。

Get請求一般參數(shù)/值都會在URL中體現(xiàn),那么Spring Boot的Get請求參數(shù)怎么在方法中獲取到呢

@RequestMapping(value="/testGet3",method= RequestMethod.GET)

publicStringTest3(@RequestParam("id") String? idName){

returnidName;

}

這種方法是用RequestParam來獲取請求參數(shù)key=id吼旧,并且把值賦到idName中

@RequestMapping(value="/testGet4/{id}",method= RequestMethod.GET)

publicStringTest4(@PathVariableString id ){

returnid;

}

這種方法是用PathVariable凰锡,這時候一定要注意,方法接收的參數(shù)名一定要和URL中的一樣圈暗,例子中都是id

@RequestMapping(value="/testGet4",method= RequestMethod.GET)

publicStringTest4( String id ){

returnid;

}

這種方法直接讀取URL中id掂为,這個方法要確保方法的接收參數(shù)名和URL中的參數(shù)名一樣,要不然接收不成功员串。

今天就介紹RequestMapping和get方法請求的參數(shù)接收勇哗。

可以關(guān)注微信公眾號:【ITjishuzaji】 獲取最新文章


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市寸齐,隨后出現(xiàn)的幾起案子欲诺,更是在濱河造成了極大的恐慌抄谐,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞧栗,死亡現(xiàn)場離奇詭異斯稳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)迹恐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門挣惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人殴边,你說我怎么就攤上這事憎茂。” “怎么了锤岸?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵竖幔,是天一觀的道長。 經(jīng)常有香客問我是偷,道長拳氢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任蛋铆,我火速辦了婚禮馋评,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刺啦。我一直安慰自己留特,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布玛瘸。 她就那樣靜靜地躺著蜕青,像睡著了一般。 火紅的嫁衣襯著肌膚如雪糊渊。 梳的紋絲不亂的頭發(fā)上右核,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音渺绒,去河邊找鬼蒙兰。 笑死,一個胖子當(dāng)著我的面吹牛芒篷,可吹牛的內(nèi)容都是我干的搜变。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼针炉,長吁一口氣:“原來是場噩夢啊……” “哼挠他!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起篡帕,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤殖侵,失蹤者是張志新(化名)和其女友劉穎贸呢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拢军,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡楞陷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了茉唉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片固蛾。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖度陆,靈堂內(nèi)的尸體忽然破棺而出艾凯,到底是詐尸還是另有隱情,我是刑警寧澤懂傀,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布趾诗,位于F島的核電站,受9級特大地震影響蹬蚁,放射性物質(zhì)發(fā)生泄漏恃泪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一犀斋、第九天 我趴在偏房一處隱蔽的房頂上張望贝乎。 院中可真熱鬧,春花似錦闪水、人聲如沸糕非。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至禁筏,卻和暖如春持钉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背篱昔。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工每强, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人州刽。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓空执,卻偏偏與公主長得像,于是被迫代替她去往敵國和親穗椅。 傳聞我的和親對象是個殘疾皇子辨绊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

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