SpringBoot不同的@Mapping使用

文章目录

一、介绍

一般@Mapping类注解在Spring框架中用于将HTTP请求映射到对应的处理器方法。它们各自对应于不同类型的HTTP方法,主要用于RESTful Web服务中。以下是每个注解的作用:

  1. @GetMapping: 用于映射HTTP GET请求到处理器方法。通常用于读取操作。

  2. @PostMapping: 用于映射HTTP POST请求到处理器方法。通常用于创建操作。

  3. @PutMapping: 用于映射HTTP PUT请求到处理器方法。通常用于更新操作,其中更新操作是幂等的,意味着多次执行同一个请求会得到相同的结果。

  4. @DeleteMapping: 用于映射HTTP DELETE请求到处理器方法。通常用于删除操作。

  5. @PatchMapping: 用于映射HTTP PATCH请求到处理器方法。PATCH与PUT类似,但通常用于部分更新资源。

  6. @RequestMapping: 是一个通用的注解,可以用于映射任何HTTP方法,通过指定method属性来明确映射类型。如果不指定method,它将映射到所有HTTP方法。这是最早的注解,后来为了方便使用,根据HTTP方法细分出了上述的专用注解。

二、使用

在Spring框架中,不同的@Mapping注解通常与不同的数据获取方式结合使用,以适应各种HTTP请求的特点:

  1. @GetMapping:

    • 用于获取数据,通常与@RequestParam一起使用来接收查询参数。

    • 示例: 获取URL中查询参数的值。

      java 复制代码
      @GetMapping("/users")
      public String getUsers(@RequestParam String name) {
          // ...
      }
    • 也可以用@PathVariable来获取URL中的路径变量。

      java 复制代码
      @GetMapping("/users/{id}")
      public String getUserById(@PathVariable Long id) {
          // ...
      }
  2. @PostMapping:

    • 用于创建数据,通常与@RequestBody结合使用来接收请求体中的内容,如JSON或XML。

    • 示例: 从请求体中获取JSON对象。

      java 复制代码
      @PostMapping("/users")
      public String addUser(@RequestBody User user) {
          // ...
      }
    • 有时也与@RequestParam结合使用来处理表单数据。

  3. @PutMapping:

    • 用于更新数据,通常与@RequestBody结合使用来接收请求体中的内容。

    • 示例: 从请求体中获取JSON对象来更新数据。

      java 复制代码
      @PutMapping("/users/{id}")
      public String updateUser(@PathVariable Long id, @RequestBody User user) {
          // ...
      }
  4. @DeleteMapping:

    • 用于删除数据,通常与@PathVariable结合使用来指定要删除的资源的ID。

    • 示例: 删除指定ID的用户。

      java 复制代码
      @DeleteMapping("/users/{id}")
      public String deleteUser(@PathVariable Long id) {
          // ...
      }
  5. @PatchMapping:

    • 用于部分更新资源,与@RequestBody结合使用来接收部分数据。

    • 示例: 部分更新用户信息。

      java 复制代码
      @PatchMapping("/users/{id}")
      public String patchUser(@PathVariable Long id, @RequestBody Map<String, Object> updates) {
          // ...
      }
  6. @RequestMapping:

    • 这是一个通用注解,可以用来处理任何HTTP方法,其具体方法由method属性指定。
    • 数据获取方式取决于具体的HTTP方法。

每个注解的使用依赖于HTTP请求的语义,以及你如何打算处理请求数据。总体而言,@RequestParam和@PathVariable用于从URL获取数据,而@RequestBody用于处理复杂的请求体内容。

相关推荐
猿究院_夏燊7 小时前
Spring Bean 生命周期
java·后端·spring
Wang's Blog7 小时前
Java 项目实战: 交友项目:登录链路回顾与今日任务地图
java·开发语言·状态模式·交友
信誓旦旦的程序猿8 小时前
【Python量化实战宝典 #08】可转债与债券接口手册:转股价·溢价率·纯债价值(Python 可跑)
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
砚底藏山河8 小时前
python量化:行情数据回溯
java·开发语言·python·金融·maven
Jlzn88888 小时前
华东电芯分选通道数怎么配才不堵线
java·人工智能·架构·自动化·制造
香吧香8 小时前
GRPC连接机制---长连接分析
java·网络与传输协议
CCblandy8 小时前
雪花 ID 四个边界实测:时钟回拨重号 500 个,前端 JSON.parse 直接丢精度
后端·python·算法·性能优化·架构
我是人✓8 小时前
SpringBoot项目的五种创建方式
java·spring boot·后端
Wang's Blog9 小时前
Java 项目实战: 交友项目 - 阿里云 OSS 入门案例:从创建 Bucket 到上传拿到可访问 URL
java·阿里云·交友
裕晟资质规划10 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全