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

SpringMVC REST 五大请求注解+ 三大入参注解

一、REST 请求注解(全是 @RequestMapping 衍生)

表格

注解请求方式业务规范能否使用 @RequestBody
@GetMappingGET查询资源❌ 不支持
@PostMappingPOST新增资源✅ 支持
@PutMappingPUT全量更新资源✅ 支持
@DeleteMappingDELETE删除资源✅ 支持
@RequestMapping自定义 method通用接口根据请求方式决定

1.@GetMapping

参数放在URL 地址栏/user?id=1/user/1

  • 幂等:多次访问数据不变,只查询不修改
  • 不能携带 json 请求体,@RequestBody注解失效
//路径参数 @GetMapping("/user/{id}") public Result findById(@PathVariable Long id){} //url拼接参数 @GetMapping("/list") public Result list(@RequestParam String name){}

2.@PostMapping

用于新增,数据放在请求 Body (JSON),搭配@RequestBody非幂等:重复提交会重复创建数据

@PostMapping("/user") public Result add(@RequestBody User user){}

3.@PutMapping

全量修改,必须带资源 id,全字段覆盖更新,幂等

@PutMapping("/user/{id}") public Result update(@PathVariable Long id,@RequestBody User user){}

4.@DeleteMapping

根据 id 删除资源

@DeleteMapping("/user/{id}") public Result delete(@PathVariable Long id){}

补充:前端不支持 PUT/DELETE 解决方案

application.yml 开启隐式请求转换:

yaml

spring: mvc: hiddenmethod: filter: enabled: true

表单携带参数:_method=put / _method=delete

二、三大入参注解核心区别

1.@PathVariable:获取路径占位符参数

地址:/user/123

@GetMapping("/user/{uid}") public Result get(@PathVariable("uid") Long id)
  • 来源:URL 路径上
  • 适用:REST 风格路径取值

2.@RequestParam:获取 URL 拼接参数、表单参数

地址:/user?name=张三&age=18

@GetMapping("/user") public Result get(@RequestParam String name,Integer age)

特点:

  1. GET、POST 表单都能用
  2. @RequestParam(required = false)参数非必传

3.@RequestBody:接收 Post/Put 请求中 Body 的 JSON

@PostMapping("/add") public Result save(@RequestBody User user)
  • 只支持 POST/PUT/DELETE,GET 不能使用
  • 前端请求头必须:Content-Type:application/json
  • 自动把 JSON 字符串转为实体类
http://www.jsqmd.com/news/972005/

相关文章:

  • AI 生成 3D 模型下载前,为什么一定要先用查看器检查?
  • 从游戏引擎到机器人控制:反对称矩阵如何成为3D空间计算的‘隐藏语法’
  • 从硬件视角拆解SR-IOV:一张物理网卡如何‘分身’成256个虚拟设备?
  • 告别Swing丑界面!用FlatLaf 1.6.5给你的Java桌面应用换上IDEA同款皮肤(附Maven/Gradle配置)
  • 新手避坑指南:跟着CODESYS官方教程做冰箱PLC项目,这几个细节千万别忽略
  • TMS320F280049C ADC的“隐藏关卡”:PPB后处理块与开短路检测,让你的系统更智能更安全
  • 从JavaScript的0.1+0.2不等于0.3说起:图解IEEE754舍入模式与前端精度问题避坑
  • 2026这6款硬核降AI率工具全揭秘,一键实现AI检测丝滑过审!
  • KMS-4-WF模块深度体验:无线USB一键宏的稳定性、延迟与穿墙能力实测
  • 选购室内除甲醛服务,三木环保靠谱吗? - mypinpai
  • Unity滚动球游戏(四)
  • 保姆级教程:用Docker Compose一键部署qBittorrent+Transmission+IYUU Plus辅种全家桶
  • 别再死记硬背了!用一张图彻底搞懂K8s里Service、Endpoints和Pod的‘三角恋’
  • 群晖Docker小白也能搞定的RuoYi-flowable工作流部署(附完整避坑指南)
  • 从游戏角色到工业协议:一个有趣的比喻帮你彻底搞懂C#中的ModbusRTU主从通信
  • 手把手教你配置TMS320F28335的SPI自测模式(附完整代码与避坑指南)
  • 别再只会console.log了!QML调试的6个隐藏技巧(含性能追踪实战)
  • STM32F4移植SOEM主站:手把手教你搞定EtherCAT网卡驱动与大小端配置
  • 安全玻璃盒品牌怎么样? - mypinpai
  • 目前有实力的热风机实力厂家推荐,矿用热风机/电热风机/热风机/工业热风机,热风机厂商选哪家 - 品牌推荐师
  • 告别移植烦恼:用STM32CubeMX快速配置SOEM EtherCAT主站的底层驱动
  • 给汽车电子工程师的AVC-LAN总线调试实战:用示波器抓取丰田音频总线信号(附波形分析)
  • eBay买家账户触发风控限制的3个常见原因及预防指南,避免再次中招
  • Zephyr RTOS设备驱动模型避坑指南:为什么你的gpio_pin_write()会跑到0地址崩溃?
  • 用MATLAB和Pluto SDR复现通信原理实验:正弦波、方波收发实测与波形畸变分析
  • 不止OBD4:通过SE16N查T077S表,深入理解SAP总账科目组的底层逻辑
  • 从零到一:Swin Transformer图像分类实战,手把手教你用PyTorch复现B站热门项目
  • 别再手动装系统了!ESXi 6.7保姆级虚拟机克隆教程,5分钟搞定新环境
  • 别再手动改语言包了!Vue项目用Axios动态加载i18n配置的保姆级教程
  • 全屋定制品牌哪个更实用? - mypinpai