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

@GetMapping @PostMapping @DeleteMapping @PutMapping

在 Spring Boot(或 Spring MVC)中,@GetMapping、@PostMapping、@PutMapping 和 @DeleteMapping 是用于定义 RESTful 接口的 HTTP 方法专用注解,它们是对 @RequestMapping 的语义化封装,使代码更清晰、简洁。

注解HTTP 方法用途等价写法参数
@GetMappingGET获取资源(查询)@RequestMapping(method = RequestMethod.GET)@PathVariable, @RequestParam 单独使用
@PostMappingPOST创建资源 / 提交数据@RequestMapping(method = RequestMethod.POST)@RequestBody
@PutMappingPUT全量更新 资源@RequestMapping(method = RequestMethod.PUT)@PathVariable, @RequestBody 合用
@DeleteMappingDELETE删除资源@RequestMapping(method = RequestMethod.DELETE)@PathVariable
@RestController @RequestMapping("/api/users")publicclassUserController{// GET /api/users/1@GetMapping("/{id}")publicUsergetUser(@PathVariable Long id){returnuserService.findById(id);}// GET /api/users?role=admin@GetMappingpublicList<User>getUsers(@RequestParam(required=false)String role){returnuserService.findByRole(role);}// POST /api/users (请求体为 JSON)@PostMappingpublicUsercreateUser(@RequestBody CreateUserRequest request){returnuserService.create(request);}// PUT /api/users/1 (全量更新)@PutMapping("/{id}")publicUserupdateUser(@PathVariable Long id,@RequestBody UpdateUserRequest request){returnuserService.updateFull(id,request);}// DELETE /api/users/1@DeleteMapping("/{id}")publicResponseEntity<Void>deleteUser(@PathVariable Long id){userService.delete(id);returnResponseEntity.noContent().build();// 返回 204 No Content}}

@GetMapping

GET /api/example?a=1&b=2&c=3
方法1

@GetMapping("/example")publicStringhandleRequest(@RequestParam String a,@RequestParam Integer b,@RequestParam(required=false)String c// 可选参数){System.out.println("a="+a+", b="+b+", c="+c);return"OK";}

方法二:封装到一个 POJO 对象中(适合参数多或复用)

publicclassQueryParams{privateString a;privateInteger b;privateString c;// 必须有 getter/setter(Lombok 可简化)publicStringgetA(){returna;}publicvoidsetA(String a){this.a=a;}publicIntegergetB(){returnb;}publicvoidsetB(Integer b){this.b=b;}publicStringgetC(){returnc;}publicvoidsetC(String c){this.c=c;}}
@GetMapping("/example")publicStringhandleRequest(QueryParams params){System.out.println(params.getA()+", "+params.getB()+", "+params.getC());return"OK";}
http://www.jsqmd.com/news/625461/

相关文章:

  • 工具技术中的工具选择工具集成与工具维护
  • 别再只比“会不会写代码”:我用 5 款 AI 编程工具实测需求理解、改 Bug 和项目接手能力
  • 瑜伽馆主必备!用雯雯的后宫-造相Z-Image快速生成宣传素材实战
  • ESP-C3实战指南:利用VSCode与内置JTAG实现高效调试
  • Python 爬虫限速策略实现
  • 金三银四看网络安全:2026年求职跳槽全指南(附薪资+岗位 +面试干货)
  • 仅限首批200家AI基建团队获取:NIST认证的AI原生事务SLA白皮书(含7类故障注入测试模板)
  • 智能投顾中的资产配置与组合优化模型
  • [AI/应用/MCP] MCP Server/Tool 开发指南恿
  • 2026年西城区离婚律师事务所推荐及服务解析 - 品牌排行榜
  • 20251910 2025-2026-2 《网络攻防实践》第3次作业
  • JimuReport 积木报表 v2.3.2 版本发布,免费的可视化报表和大屏设计
  • 大模型推理成本骤降63%的5个反直觉策略:2026年已验证,错过即淘汰
  • 51单片机项目省电实战:除了掉电模式,你的STC89C52还能这样‘偷懒’降功耗
  • hadoop+Spark+django基于大数据技术的高校岗位招聘平台与数据可视化分析(源码+文档+调试+可视化大屏)
  • 2026年全国新能源抓钢机、定制化工程机械与物料抓取设备深度横评选购指南 - 精选优质企业推荐榜
  • 2026年海淀区离婚律师事务所推荐及服务参考 - 品牌排行榜
  • 3分钟快速完成Axure RP汉化:免费中文语言包完整指南
  • 如何用RP-Soundboard让你的Teamspeak语音聊天变得生动有趣
  • 2026微信公众号编辑器深度选型指南:告别低效排版的实战手册 - 行业产品测评专家
  • ObsPy的TauPyModel实战:如何为你的地震定位脚本快速集成P波理论走时计算?
  • hadoop+Spark+django基于大数据技术的短视频数据分析(源码+文档+调试+可视化大屏)
  • 2026年4月工厂预制化管道公司口碑推荐,中低压管件/撬装产品设备/压力容器/三通管件,工厂预制化管道生产厂家找哪家 - 品牌推荐师
  • Rust的匹配中的守卫条件
  • 从Query理解到Action执行:AI原生搜索系统7层推理链深度拆解,一线大厂已在灰度上线
  • 数据库草图算法
  • PVE虚拟机USB蓝牙直通实战:从CSR8510 A10配置到IoT开发环境搭建
  • hadoop+Spark+django基于大数据技术的国内运动男装小红书文章数据可视化分析系统(源码+文档+调试+可视化大屏)
  • 浏阳市贤凤环保新品上线!儿童专属室内环保小喷泉烟花 - 中媒介
  • 魔百盒CM211-2系列(ZG/CH/YS)海思MV300H/310芯片免拆刷机指南:解锁无线与ROOT全流程