当前位置: 首页 > news >正文

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


一、@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→ 请求头
http://www.jsqmd.com/news/1079047/

相关文章:

  • 关于威尼斯系统检测注单尚未同步提不了怎么解决
  • 【Three.js 实战】结合 MediaPipe 实现 3D 粒子手势互动特效 (附原理解析)--手势控制粒子项目,附源码
  • 希迪迈向“重载具身智能”,AI改变物理世界有了新注解
  • OpenClaw+Kimi本地智能体工作流:多模态动作闭环实战指南
  • Claude 怎么用?网页端、API、第三方工具有什么区别
  • 数据库统计信息备份与还原技术实践
  • 063、Zephyr RTOS内核基础:内存管理之内存池
  • 2026年GEO优化系统源码怎么选?这份实操指南请收好
  • 从零开始打造你的《最终幻想14》专属外观:FFXIV TexTools完整使用指南
  • 2022年5月AI工程落地关键突破:LoRA、FlashAttention与QLoRA实战解析
  • COUNT(*)到底能不能走索引?覆盖索引的3个误区与4种优化方案
  • SAP-ABAP:SAP Process Orchestration 7.50 入门简介:PO核心概念、架构定位与版本演进
  • 2026年深圳AI定制服务商观察:案例复用能力为何越来越重要?
  • 深入拆解Agent核心:系统提示词与用户提示词的本质区别、工程落地与全场景避坑指南
  • 行业语言大模型体验榜2026:谁真正懂你的语音需求
  • 线上Prompt改一版就翻车怎么快速回滚
  • 其实APP宣传成本最低的方式是:电子海报---POP广告
  • 华为数通vs云计算认证:2026选哪个?我跟两个方向的从业者聊了聊
  • TAI 134合规实操指南:模型扩散管控与API服务落地七项检查
  • 100 00 黄大年茶思屋“难题揭榜”第100期-华为云难题第五期(全文整理)
  • 从30条到300条:生成式AI短视频量产如何重构电商内容生产线
  • 四叉树原理与实现:优化空间查询与碰撞检测的利器
  • 2026年API中转站实测横评榜单发布:非线智能API是企业首选AI中转服务商
  • NSK滚珠丝杠W4024SS技术参数指南
  • 2026 年还能白嫖的 AI 生图工具,我挨个试了一遍
  • 代理IP接入程序的完整流程(Python 实战,附排坑记录)
  • FPGA高精度TDC设计:POR与ITI技术解析
  • OSINT Cheat Sheet:一份覆盖情报调查全流程的工具速查手册
  • 5G站点1588同步故障导致板卡心跳失败及数据丢失的处置案例
  • 供应链风险不再只是采购问题,CEO必须重新看这张隐形地图