spring中常見的一些註解

小樓昨夜又西風發表於2019-02-25

1.Spring bean @Required註解作用詳解
詳情參考:https://blog.csdn.net/u012557814/article/details/78784762/

2.@Qualifier:該註解和@Autowired註解搭配使用,用於消除特定bean自動裝配的歧義

3.@Autowired與@Resource的區別
①@Autowired與@Resource都可以用來裝配bean. 都可以寫在欄位上,或寫在setter方法上。
②@Autowired預設按型別裝配(這個註解是屬業spring的),預設情況下必須要求依賴物件必須存在,如果要允許null 值,可以設定它的required屬性為false,如:@Autowired(required=false) ,如果我們想使用名稱裝配可以結合@Qualifier註解進行使用,如下:
在這裡插入圖片描述
@Resource(這個註解屬於J2EE的),預設安照名稱進行裝配,名稱可以通過name屬性進行指定,
如果沒有指定name屬性,當註解寫在欄位上時,預設取欄位名進行按照名稱查詢,如果註解寫在setter方法上預設取屬性名進行裝配。 當找不到與名稱匹配的bean時才按照型別進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。
在這裡插入圖片描述
4.@RequestParam
GET和POST請求傳的引數會自動轉換賦值到@RequestParam 所註解的變數上
在這裡插入圖片描述
5.@ModelAttribute
@ModelAttribute註解型別將引數繫結到Model物件
在這裡插入圖片描述
6.@RequestParam、@RequestBody和@ModelAttribute區別?

當前臺介面使用GET或POST方式提交資料時,資料編碼格式由請求頭的ContentType指定。分為以下幾種情況:

  1. application/x-www-form-urlencoded,這種情況的資料@RequestParam、@ModelAttribute可以處理,@RequestBody也可以處理。
  2. multipart/form-data,@RequestBody不能處理這種格式的資料。(form表單裡面有檔案上傳時,必須要指定enctype屬性值為multipart/form-data,意思是以二進位制流的形式傳輸檔案。)
  3. application/json、application/xml等格式的資料,必須使用@RequestBody來處理。

相關文章