Spring Boot接收前端参数的注解总结

在 Spring Boot 里,后端控制器方法(Controller)可以通过不同的注解来"接收前端传来的参数",这些注解分别对应不同的传参方式。


🌟 常见的参数接收注解对比

注解 来源 用法 示例 URL / 请求体 说明
@PathVariable 路径变量 从 URL 路径中取参数 /user/123 用于 RESTful 风格接口,例如 /wish/delete/13
@RequestParam 查询参数(URL 上 ? 后面) 从 URL 的查询字符串取参数 /wish/delete?wishId=13 适合简单参数
@RequestBody JSON 请求体 从请求体中取参数 {"wishId":13,"title":"test"} 常用于 POST 请求
@RequestHeader 请求头 从 HTTP header 中取值 Authorization: Bearer xxx 取请求头里的值
@CookieValue Cookie 从 Cookie 里取值 - 比较少用
@ModelAttribute 表单参数 绑定到一个对象上(传统 form 表单) - 适用于 application/x-www-form-urlencoded

💡 举例讲解

✅ 1️⃣ @PathVariable

java 复制代码
@DeleteMapping("/wish/delete/{wishId}")
public boolean deleteWish(@PathVariable Long wishId) {
    return wishService.deleteWish(wishId);
}

👉 URL: DELETE /wish/delete/13
wishId = 13


✅ 2️⃣ @RequestParam

java 复制代码
@PostMapping("/wish/delete")
public boolean deleteWish(@RequestParam Long wishId) {
    return wishService.deleteWish(wishId);
}

👉 URL: POST /wish/delete?wishId=13
wishId = 13


✅ 3️⃣ @RequestBody

java 复制代码
@PostMapping("/wish/delete")
public boolean deleteWish(@RequestBody Map<String, Object> data) {
    Long wishId = (Long) data.get("wishId");
    return wishService.deleteWish(wishId);
}

👉 请求体:

json 复制代码
{
  "wishId": 13
}

适用于前端使用 wx.request 发送 JSON 格式数据。


✅ 4️⃣ 组合对象绑定

你也可以直接接收一个对象:

java 复制代码
@PostMapping("/wish/add")
public boolean addWish(@RequestBody Wish wish) {
    return wishService.addWish(wish);
}

👉 请求体:

json 复制代码
{
  "title": "学习SpringBoot",
  "description": "今天学@RequestParam"
}

🔍 小结

使用场景 推荐注解
REST 风格 URL /api/user/123 @PathVariable
URL 查询参数 /api/user?id=123 @RequestParam
JSON 请求体 { "id": 123 } @RequestBody
相关推荐
子兮曰2 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰2 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万2 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝2 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码2 天前
别再前后端各写一套表单校验了
java·后端
三十而立洋3 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
大勇前进3 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
vipxieliang3 天前
ValidX 在 DDD 领域驱动设计中的实践
java·spring boot
yuzhi_liu3 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile3 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go