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
相关推荐
菠菜盼娣1 天前
vue3知识点
前端·vue.js
JIngJaneIL1 天前
基于java+ vue建筑材料管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
土豆12501 天前
终端自治时代的 AI 开发范式:Claude Code CLI 全方位实操指南
前端·人工智能·程序员
一 乐1 天前
办公系统|基于springboot + vueOA办公管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·spring
Gazer_S1 天前
【Vue Router 路由守卫(Navigation Guards)指南:概念、执行顺序、beforeResolve、异步路由组件】
前端·javascript·vue.js
半梅芒果干1 天前
vue3 新建文件store自动导入
开发语言·前端·javascript
Tony Bai1 天前
Go 1.26 新特性前瞻:从 Green Tea GC 到语法糖 new(expr),性能与体验的双重进化
开发语言·后端·golang
玖笙&1 天前
✨万字解析解析:Vue.js优雅封装级联选择器组件(附源码)
前端·javascript·vue.js·前端框架
资源站shanxueit或com1 天前
Python入门教程:从零到实战的保姆级指南(避坑大全) 原创
后端
烟袅1 天前
深入理解 React 中 useState 与 useEffect
前端·javascript·react.js