SpringMVC核心注解:@RequestMapping详解

概述

@RequestMapping是SpringMVC中最核心的注解之一,用于将HTTP请求映射到MVC和REST控制器的处理方法上。

基本功能

@RequestMapping主要用于:

  • 映射URL到控制器类或方法
  • 定义请求方法类型(GET、POST等)
  • 定义请求参数、请求头等条件

使用位置

类级别:定义基本请求路径

java 复制代码
@RequestMapping("/order")
@Controller
public class OrderController {
    // ...
}

方法级别:定义具体路径和请求方法

java 复制代码
@RequestMapping(value = "/findAll", method = RequestMethod.GET)
@ResponseBody
public List<Order> findAll() {
    // ...
}

主要属性

属性名 说明 示例
value/path 映射的URL路径 @RequestMapping("/orders")
method 请求方法类型 method = RequestMethod.GET
params 请求方法参数 params = "type=book"
headers 请求头条件 headers = "content-type=text/*"
consumes 请求内容类型 consumes = "application/json"
produces 响应内容类型 produces = "application/json"

常见组合注解

Spring 4.3+ 提供了更简洁的派生注解代码

注解 等价于
@GetMapping @RequestMapping(method = RequestMethod.GET)
@PostMapping @RequestMapping(method = RequestMethod.POST)
@PutMapping @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping @RequestMapping(method = RequestMethod.DELETE)
@PatchMapping @RequestMapping(method = RequestMethod.PATCH)

路径变量

可以与@PathVariable配合使用

java 复制代码
@GetMapping("/orders/{id}")
public Order getOrder(@PathVariable Long id) {
    // ...
}

示例代码

java 复制代码
@RestController
@RequestMapping("/api/orders")
public class OrderController {

    @GetMapping
    public List<Order> getAll() {
        // 获取所有订单
    }

    @GetMapping("/{id}")
    public Order getById(@PathVariable Long id) {
        // 获取特定ID的订单
    }

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public Order create(@RequestBody Order order) {
        // 创建新订单
    }

    @PutMapping("/{id}")
    public Order update(@PathVariable Long id, @RequestBody Order order) {
        // 更新订单
    }

    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id) {
        // 删除订单
    }
}
相关推荐
SimonKing26 分钟前
Java 8 日期时间 API 全面指南:使用技巧与场景实践
java·后端·程序员
我是唐青枫27 分钟前
C#.NET 泛型详解
开发语言·c#·.net
SoniaChen3338 分钟前
Rust基础[part4]_基本类型,所有权
开发语言·后端·rust
今天背单词了吗98042 分钟前
算法学习笔记:25.回溯算法之迷宫寻路——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·学习·考研·算法·回溯算法
青云交1 小时前
Java 大视界 -- Java 大数据在智能交通智能公交站台乘客流量预测与服务优化中的应用(349)
java·大数据·java 大数据·智能公交·极端天气调度·车型适配·客流预测
晓13131 小时前
JavaScript进阶篇——第八章 原型链、深浅拷贝与原型继承全解析
开发语言·javascript·原型模式
Yasin Chen1 小时前
C# StringBuilder源码分析
开发语言·c#
电饭叔1 小时前
《python语言程序设计》2018版第8章8题编写函数实现二进制转十进制(字符串变整数)!!整数没法进行下标
开发语言·python
物与我皆无尽也1 小时前
Agent交互细节
java·llm·agent·tools·mcp·mcp server
will_csdn_go1 小时前
祺洛后台管理 Rust Cross 交叉编译环境配置指南
开发语言·后端·rust