全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-18 6 分钟 ✍️ juanwangdev

Spring MVC @RequestMapping注解

@RequestMapping 用于定义请求 URL 到控制器方法的映射关系。

基本用法

Java
@Controller
public class UserController {

    @RequestMapping("/user/list")
    public String list() {
        return "user/list";
    }
}

注解属性

属性类型说明
value/pathString[]请求路径
methodRequestMethod[]请求方法
paramsString[]请求参数条件
headersString[]请求头条件
consumesString[]Content-Type 条件
producesString[]Accept 条件

类级别与方法级别组合

Java
@Controller
@RequestMapping("/api/user")
public class UserApiController {

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public List<User> list() {
        return userService.findAll();
    }

    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    public User get(@PathVariable Long id) {
        return userService.findById(id);
    }
}

完整路径:/api/user/list/api/user/{id}

限定请求方法

Java
@RequestMapping(value = "/user", method = RequestMethod.POST)
public User create(@RequestBody User user) {
    return userService.save(user);
}

组合注解

Spring 提供 HTTP 方法专用的组合注解:

注解说明
@GetMappingGET 请求
@PostMappingPOST 请求
@PutMappingPUT 请求
@DeleteMappingDELETE 请求
@PatchMappingPATCH 请求
Java
@GetMapping("/user/{id}")
public User get(@PathVariable Long id) {
    return userService.findById(id);
}

@PostMapping("/user")
public User create(@RequestBody User user) {
    return userService.save(user);
}

多路径映射

Java
@RequestMapping({"/user", "/users"})
public String userPage() {
    return "user/list";
}

条件匹配

Java
// 参数条件:必须包含 name 参数
@RequestMapping(value = "/search", params = "name")
public String search(@RequestParam String name) {
    return "search";
}

// 请求头条件
@RequestMapping(value = "/api", headers = "X-API-Version=1")
public String apiV1() {
    return "api/v1";
}

// Content-Type 条件
@RequestMapping(value = "/upload", consumes = "multipart/form-data")
public String upload() {
    return "upload";
}

// Accept 条件
@RequestMapping(value = "/data", produces = "application/json")
public String data() {
    return "data";
}

Ant 风格路径

Java
@RequestMapping("/user/*")      // 匹配 /user/任意单级路径
@RequestMapping("/user/**")     // 匹配 /user/任意多级路径
@RequestMapping("/user/*.json") // 匹配 /user/xxx.json

推荐使用 @GetMapping、@PostMapping 等组合注解,代码更简洁。

要点总结

  • @RequestMapping 可用于类和方法,路径自动拼接
  • method 属性限定请求方法
  • params、headers 属性支持条件匹配
  • 优先使用 @GetMapping、@PostMapping 组合注解

📝 发现内容有误?点击此处直接编辑

← 上一篇 Spring MVC @PathVariable注解
下一篇 → Spring MVC @RequestParam注解
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库