尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

[特殊字符] Spring MVC 四大参数注解笔记

[特殊字符] Spring MVC 四大参数注解笔记
📅 发布时间:2026/6/26 4:08:44

一、@RequestParam(查询参数 / 表单参数)

✔ 作用

👉 从URL参数 或 form-data中取值,绑定到方法参数


✔ 适用场景

1️⃣ URL Query

GET /user/list?page=1&size=10
@RequestParam int page @RequestParam int size

2️⃣ form-data(文件上传 / 表单提交)

name=tom&age=18

✔ 特点

  • 用于“单个字段”
  • 支持默认值
  • 支持是否必填
@RequestParam(required = false, defaultValue = "0") int page

✔ 本质

👉 从request.getParameter()取值


✔ 你代码里的例子

@RequestParam MultipartFile file @RequestParam String tableName

👉 multipart/form-data 请求


二、@PathVariable(路径参数)

✔ 作用

👉 从 URL 路径中取值


✔ 示例

GET /user/1001
@GetMapping("/user/{id}") public User get(@PathVariable Long id)

✔ 特点

  • URL 结构化参数
  • REST 风格核心方式

✔ 多参数

/user/1001/order/5001
@GetMapping("/user/{uid}/order/{oid}") public String test(@PathVariable Long uid, @PathVariable Long oid)

✔ 本质

👉 从 URL path 中解析变量


三、@RequestBody(请求体 JSON)

✔ 作用

👉 把 HTTP Body 中的 JSON 转成 Java 对象


✔ 示例

前端发送

POST /user { "name": "tom", "age": 18 }

后端接收

@PostMapping("/user") public void add(@RequestBody User user)

✔ 特点

  • 只能用于 POST / PUT / PATCH
  • 解析 JSON
  • 依赖 HttpMessageConverter(Jackson)

✔ 本质

👉 JSON → Java对象(反序列化)


✔ 和 @RequestParam 区别(重点)

类型来源数据格式
@RequestParamURL / form-datakey=value
@RequestBodybodyJSON

四、@RequestHeader(请求头)

✔ 作用

👉 从 HTTP Header 中取值


✔ 示例

请求

GET /user token: abc123 user-id: 1001

后端

@GetMapping("/user") public String test(@RequestHeader String token)

✔ 常见用法

1️⃣ token 鉴权

@RequestHeader("Authorization") String token

2️⃣ 自定义 header

@RequestHeader("user-id") Long userId

✔ 本质

👉 从request.getHeader()取值


五、四者对比(核心总结表)

注解数据来源数据格式使用场景
@RequestParamURL / form-datakey=value普通参数、分页、上传
@PathVariableURL路径/{id}REST资源定位
@RequestBody请求体bodyJSON复杂对象提交
@RequestHeader请求头headertoken / 鉴权 / trace

六、真实工程判断逻辑(非常重要)

看到一个接口,你要这样判断:


✔ 1. 有没有{}

/user/1001

👉 一定是 @PathVariable


✔ 2. 有没有 JSON body

{ "name": "tom" }

👉 一定是 @RequestBody


✔ 3. 有没有 ?xxx=xxx

?page=1

👉 @RequestParam


✔ 4. 有没有 header

token: xxx

👉 @RequestHeader


七、一句话总结

  • @RequestParam→ 参数
  • @PathVariable→ 路径
  • @RequestBody→ JSON
  • @RequestHeader→ 请求头

相关新闻

  • 关于威尼斯系统检测注单尚未同步提不了怎么解决
  • 从零开始打造你的《最终幻想14》专属外观:FFXIV TexTools完整使用指南
  • 063、Zephyr RTOS内核基础:内存管理之内存池

最新新闻

  • 【C/C++】select、poll、epoll 实战对比:从 fd_set 到就绪事件列表
  • 云手机不只是挂机:ARM 虚拟化架构 + ADB 自动化实战,附完整代码
  • 从 0 到 1 搭建 NexusAgent
  • MongoDB入门实战:从核心概念到CRUD操作与索引优化
  • 终极音乐解锁指南:3分钟掌握15+加密格式解密技巧
  • 20VOUT,9W,XL2170,恒压限流LED升压驱动芯片

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号