深入解析 @RequestMapping 及其衍生注解:原理、用法与最佳实践

一、@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 属性)
  • 校验请求头中的值(如 AcceptUser-Agent
@RequestMapping(value = "/api", headers = "Accept=application/json")
public JsonResponse api() {
    ... }

2. 类级别与方法级别组合

  • 类级别:定义基础路径(避免重复编码)
@RequestMapping(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值