web佛腳-SpringMVC常用注解類

RequestMapping注解類

  • 在mvc-dispatcher-servlet.xml(也可能名字不一樣,就是springmvc的配置文件)中车胡,添加掃描<context:component-scan>用于掃描包中的@contorller控制器類,攔截URL抱婉。

  • 在Controller控制器類的類定義和方法定義處都可以標(biāo)注@RequestMapping珊膜,用于處理路徑請求。

  • DispatcherServlet截獲請求后侧戴,就可以通過控制器上的@RequestMapping提供的映射信息確定請求所對應(yīng)的處理方法宁昭。

  • RequestMapping屬性:value method consumes produces params headers
    method類型:GET POST PUT DELETE
    cosumes:制定請求提交內(nèi)容的類型 如{application/json,text/plain}可以是一個數(shù)組酗宋,也可以是一個字符串积仗。
    produces:返回的內(nèi)容類型。
    params:表示 請求中必須包含某些參數(shù)才會出發(fā)這個方法蜕猫,如params="myParam=myValue"寂曹,也可以用數(shù)組表示params={"myParam0=myValue","myParam1!=myValue"}

  • headers:請求頭中必須包含某些指定的參數(shù)值,才能讓該方法處理請求回右,如hearders="contet-type=text/*"

  • @RequestMapping不僅支持標(biāo)準的URL隆圆,還支持Ant風(fēng)格和帶{xxx}占位符的URL,下面的URL都是合法的:
    /user//login:匹配/user/aaa/login翔烁,/user/任意字符/login 等
    /user/
    /login:匹配/user/login渺氧, /user/aaa/bbb/login 等
    /user/login??:匹配/user/loginAA, /user/loginbb 等
    /user/{userId}:匹配/user/123, /user/234 等
    /user/
    */{userId}:匹配/user/aaa/bbb/123蹬屹,/user/aaa/234等

四大注解類

  • @Component 是通用標(biāo)注
  • @Controller標(biāo)注web控制器
  • @Service標(biāo)注Service層的服務(wù)
  • @Respository標(biāo)注DAO層的數(shù)據(jù)訪問

這些注解都是類級別的侣背,可以不帶任何參數(shù),也可以帶一個參數(shù)慨默,代表bean的名字贩耐,在進行注入的時候就可以通過名字進行注入了

在不清楚使用那個注解的時候,可以統(tǒng)統(tǒng)使用Component 业筏。為了代碼邏輯清晰憔杨,還是建議使用具體的注解

@Resource 和@Autowired的異同

@Autowired默認按類型裝配,默認情況下必須要求依賴對象必須存在蒜胖,如果要允許null值,可以設(shè)置它的required屬性為false抛蚤,例如:@Autowired(required=false) 台谢,如果我們想使用名稱裝配可以結(jié)合@Qualifier注解進行使用

圖片 7.png

@Resource,默認安裝名稱進行裝配岁经,名稱可以通過name屬性進行指定朋沮,如果沒有指定name屬性,當(dāng)注解寫在字段上時缀壤,默認取字段名進行安裝名稱查找樊拓,如果注解寫在setter方法上默認取屬性名進行裝配。當(dāng)找不到與名稱匹配的bean時才按照類型進行裝配塘慕。但是需要注意的是筋夏,如果name屬性一旦指定,就只會按照名稱進行裝配

圖片 8.png

其他常用注解類

  • PathVariable注解類
  • RequestParam注解類
  • CookieValue注解類
  • SessionAttributes注解類
  • ResponseBody注解類
  • RequestHeader注解類

PathVariable

@RequestMapping注解中使用占位符的情況下图呢,需要使用@PathVariable注解指定占位符參數(shù)

圖片 pv.png

其實就是用路徑里面的參數(shù)復(fù)制給注解后面的變量

RequestParam

在SpringMVC后臺控制層獲取參數(shù)的方式主要有兩種条篷,一種是request.getParameter("name")骗随,另外一種是用注解@RequestParam直接獲取
有三個屬性 value, required赴叹, defaultValue
不帶任何參數(shù)鸿染,表示需要的參數(shù)名與標(biāo)注的變量名相同
可以通過required=false或者true來要求@RequestParam配置的前端參數(shù)是否一定要傳
參數(shù)類型盡量不要使用基本類型int,long等乞巧,而應(yīng)該使用具體的對象類Integer涨椒、Long、String等
就是把request對象中的同名參數(shù)绽媒,賦值給后面的變量

rp1.png
rp2
rp3.png
rp4.png

CookieValue

讀取Cookies中的值丢烘,并且賦值給變量
有三個屬性 value, required些椒, defaultValue播瞳,分別表示Cookie的名字,是否必須有這個Cookie值免糕,如果沒有默認值
不帶任何參數(shù)赢乓,表示需要的參數(shù)名與標(biāo)注的變量名相同

cv

SessionAttrinutes

如果希望在多個請求之間公用某個模型屬性數(shù)據(jù),則可以在控制器類標(biāo)注一個@SessionAttributes石窑,Spring MVC會將模型中對應(yīng)的屬性暫存到HttpSerssion中
除了SessionAttributes牌芋,還可以直接用原生態(tài)的request.getSession()來處理session數(shù)據(jù)

sa.png

ResponseBody

用于將Controller的方法返回的對象,通過適當(dāng)?shù)腍ttpMessageConverter(轉(zhuǎn)換器)轉(zhuǎn)換為指定格式后松逊,寫入到Response對象的body數(shù)據(jù)區(qū)
返回如json躺屁、xml等時使用
在springmvc配置文件中通過<mvc:annotation-driven />,給AnnotationMethodHandlerAdapter初始化7個轉(zhuǎn)換器

轉(zhuǎn)換器.png

用的最多的是轉(zhuǎn)換成xml和json
這里配置文件中property屬性指定了返回xml

convert.png

RequestHeader

@RequestHeader 注解经宏,可以把Request請求header部分的值綁定到方法的參數(shù)上

rh.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末犀暑,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子烁兰,更是在濱河造成了極大的恐慌耐亏,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沪斟,死亡現(xiàn)場離奇詭異广辰,居然都是意外死亡,警方通過查閱死者的電腦和手機主之,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門择吊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人槽奕,你說我怎么就攤上這事几睛。” “怎么了史翘?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵枉长,是天一觀的道長冀续。 經(jīng)常有香客問我,道長必峰,這世上最難降的妖魔是什么洪唐? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮吼蚁,結(jié)果婚禮上凭需,老公的妹妹穿的比我還像新娘。我一直安慰自己肝匆,他們只是感情好粒蜈,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著旗国,像睡著了一般枯怖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上能曾,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天度硝,我揣著相機與錄音,去河邊找鬼寿冕。 笑死蕊程,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的驼唱。 我是一名探鬼主播藻茂,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼玫恳!你這毒婦竟也來了辨赐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纽窟,失蹤者是張志新(化名)和其女友劉穎肖油,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臂港,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年视搏,在試婚紗的時候發(fā)現(xiàn)自己被綠了审孽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡浑娜,死狀恐怖佑力,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情筋遭,我是刑警寧澤打颤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布暴拄,位于F島的核電站,受9級特大地震影響编饺,放射性物質(zhì)發(fā)生泄漏乖篷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一透且、第九天 我趴在偏房一處隱蔽的房頂上張望撕蔼。 院中可真熱鬧,春花似錦秽誊、人聲如沸鲸沮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讼溺。三九已至,卻和暖如春最易,著一層夾襖步出監(jiān)牢的瞬間怒坯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工耘纱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敬肚,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓束析,卻偏偏與公主長得像艳馒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子员寇,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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