@RequestMapping 將 HTTP 請求的各維度信息映射到 Handler 方法。
@RequestMapping("/test")@RequestMapping("/method") → 完整路徑 /test/method@RequestMapping("/hello")@RequestMapping({"/url1", "/url2"})? 匹配單字符* 匹配任意字符(單層)** 匹配多層路徑@RequestMapping("/user/{id}") 配合 @PathVariable@RequestMapping(value="/save", method=RequestMethod.POST)
@RequestMapping(value="/multi", method={RequestMethod.GET, RequestMethod.POST})
類級指定則所有方法繼承限制。
| 表達式 | 含義 |
|---|---|
param | 必須包含該參數 |
param=value | 參數值必須等於 value |
param!=value | 參數值不等於 value |
!param | 必須不包含該參數 |
示例:@RequestMapping(params={"userName", "age!=23"})
語法同 params,支援媒體類型通配:
@RequestMapping(headers="Accept-Language=zh,zh-CN;q=0.8")
@RequestMapping(headers="Content-Type=text/*") // 匹配 text/html, text/plain 等
@RequestMapping(consumes="application/json")
@RequestMapping(consumes={"application/json", "application/xml"})
@RequestMapping(consumes="!application/json") // 排除
服務端作為消費者,處理客戶端發送的數據格式。
@RequestMapping(produces="application/json;charset=UTF-8")
@RequestMapping(produces={"application/json", "application/xml"})
服務端作為生產者,根據客戶端 Accept 頭進行內容協商。
/users),方法級定義操作(GET、POST、PUT、DELETE)@GetMapping/@PostMapping 等組合註解(Spring 4.3+)produces/consumes,避免手動解析 Header