SpringMVC 是類似於Struts2 的一個MVC 框架,在實際開發中,接收瀏覽器的請求回應,對資料進行處理,然後返回頁面進行顯示,但是上手難度卻比Struts2 簡單多了。而且由於 Struts2 所揭露的安全問題,SpringMVC 已經成為了大多數企業優先選擇的框架。
在springMVC中有許多封裝好的註解,使用這些註解能夠簡化我們的開發。以下就是一些常用的註解:
1、@Controller
@Controller用來標記在一個類別上,使用它標記的類別就是一個SpringMVCController物件。分發處理器將會掃描使用了該註解的類別的 方法,並偵測該方法是否使用了@RequestMapping 註解。 @Controller只是定義了一個控制器類,而使用@RequestMapping註解的方法才是真正處理請求的處理器。單單使用 @Controller標記在一個類上還不能真正意義上的說它就是SpringMVC的一個控制器類,因為這個時候Spring還不認識它。那麼要如何做 Spring才能認識它呢?這時候就需要我們把這個控制器類別交給Spring來管理。有兩種方式:
(1)在SpringMVC 的設定檔中定義MyController 的bean 物件。
(2)在SpringMVC 的設定檔中告訴Spring 該到哪裡去找標示為@Controller 的Controller 控制器。
2、@RequestMapping
RequestMapping註解有六個屬性,下面我們把它分成三類來說明
(1)value,method
value:指定請求的實際位址,指定的位址可以是URI Template模式;
method:指定要求的method類型, GET、POST、PUT、DELETE等;
value的uri值可以是以下三類:普通的具體值;含有某變數的一類值;含有正規表示式的一類值;
(2)consumes,produces
consumes:指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
produces:指定傳回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才會傳回;
(3)params,headers
params:指定request中必須包含某些參數值時,才讓此方法處理。
headers:指定request中必須包含某些指定的header值,才能讓此方法處理請求。
3.@Resource和@Autowired
@Resource和@Autowired都是做bean的注入時使用,其實@Resource並不是Spring的註解,它的套件是javax .annotation.Resource,需要導入,但是Spring支援該註解的注入,兩者都可以寫在欄位和setter方法上。兩者如果都寫在字段上,那麼就不需要再寫setter方法。
4.@PathVariable
用於將請求URL中的範本變數對應到功能處理方法的參數上,即取出uri範本中的變數作為參數。
5.@ResponseBody
作用: 此註解用於將Controller的方法傳回的對象,透過適當的HttpMessageConverter轉換為指定格式後,寫入到Response物件的body資料區。
使用時機:傳回的資料不是html標籤的頁面,而是其他某種格式的資料時(如json、xml等)使用
6.@RestController
我們經常看到一些控制器實現了REST的API,只為服務於JSON,XML或其它自定義的類型內容,@RestController用來創建REST類型的控制器,與@Controller類型。 @RestController就是這樣一種類型,它 避免了你重複的寫@RequestMapping與@ResponseBody。
以上是springmvc註解是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!