一、@RequestMapping
核心注解详解
@RequestMapping
是 Spring MVC 中用于映射请求到控制器方法的核心注解,支持细粒度配置请求路径、HTTP 方法、请求参数、请求头等条件。
1. 基础用法
(1)路径映射(必选属性)
value
/path
:指定请求路径(支持 Ant 风格路径和正则表达式)
@RequestMapping(value = "/users/{id}", path = "/users/{id}") // 两种写法等价
public User getUser(@PathVariable Long id) {
... }
- Ant 风格:`/user/*`(匹配单层路径)、`/user/**`(匹配多层路径)、`/user/{id}`(路径参数)
- 正则表达式:`@RequestMapping("/user/{id:\\d+}")`(要求 `id` 为数字)
(2)HTTP 方法匹配(method
属性)
- 限定请求方法,默认匹配所有方法
@RequestMapping(value = "/sign", method = RequestMethod.POST)
public ResultVO signIn(@RequestBody SignForm form) {
... }
(3)请求参数匹配(params
属性)
- 要求请求包含或不包含特定参数
@RequestMapping(value = "/search", params = {
"key", "!sort"}) // 必须有key参数,不能有sort参数
public List<Product> search(String key) {
... }
(4)请求头匹配(headers
属性)
- 校验请求头中的值(如
Accept
、User-Agent
)
@RequestMapping(value = "/api", headers = "Accept=application/json")
public JsonResponse api() {
... }
2. 类级别与方法级别组合
- 类级别:定义基础路径(避免重复编码)
@RequestMapping(