SpringBoot不同的@Mapping使用
一、介绍
一般@Mapping
类注解在Spring框架中用于将HTTP请求映射到对应的处理器方法。它们各自对应于不同类型的HTTP方法,主要用于RESTful Web服务中。以下是每个注解的作用:
@GetMapping
: 用于映射HTTP GET请求到处理器方法。通常用于读取操作。@PostMapping
: 用于映射HTTP POST请求到处理器方法。通常用于创建操作。@PutMapping
: 用于映射HTTP PUT请求到处理器方法。通常用于更新操作,其中更新操作是幂等的,意味着多次执行同一个请求会得到相同的结果。@DeleteMapping
: 用于映射HTTP DELETE请求到处理器方法。通常用于删除操作。@PatchMapping
: 用于映射HTTP PATCH请求到处理器方法。PATCH与PUT类似,但通常用于部分更新资源。@RequestMapping
: 是一个通用的注解,可以用于映射任何HTTP方法,通过指定method
属性来明确映射类型。如果不指定method
,它将映射到所有HTTP方法。这是最早的注解,后来为了方便使用,根据HTTP方法细分出了上述的专用注解。
二、使用
在Spring框架中,不同的@Mapping
注解通常与不同的数据获取方式结合使用,以适应各种HTTP请求的特点:
@GetMapping
:用于获取数据,通常与
@RequestParam
一起使用来接收查询参数。示例: 获取URL中查询参数的值。
language-java 1
2
3
4
5@GetMapping("/users")
public String getUsers(@RequestParam String name) {
// ...
}也可以用
@PathVariable
来获取URL中的路径变量。language-java 1
2
3
4
5@GetMapping("/users/{id}")
public String getUserById(@PathVariable Long id) {
// ...
}
@PostMapping
:用于创建数据,通常与
@RequestBody
结合使用来接收请求体中的内容,如JSON或XML。示例: 从请求体中获取JSON对象。
language-java 1
2
3
4
5@PostMapping("/users")
public String addUser(@RequestBody User user) {
// ...
}有时也与
@RequestParam
结合使用来处理表单数据。
@PutMapping
:用于更新数据,通常与
@RequestBody
结合使用来接收请求体中的内容。示例: 从请求体中获取JSON对象来更新数据。
language-java 1
2
3
4
5@PutMapping("/users/{id}")
public String updateUser(@PathVariable Long id, @RequestBody User user) {
// ...
}
@DeleteMapping
:用于删除数据,通常与
@PathVariable
结合使用来指定要删除的资源的ID。示例: 删除指定ID的用户。
language-java 1
2
3
4
5@DeleteMapping("/users/{id}")
public String deleteUser(@PathVariable Long id) {
// ...
}
@PatchMapping
:用于部分更新资源,与
@RequestBody
结合使用来接收部分数据。示例: 部分更新用户信息。
language-java 1
2
3
4
5@PatchMapping("/users/{id}")
public String patchUser(@PathVariable Long id, @RequestBody Map<String, Object> updates) {
// ...
}
@RequestMapping
:- 这是一个通用注解,可以用来处理任何HTTP方法,其具体方法由
method
属性指定。 - 数据获取方式取决于具体的HTTP方法。
- 这是一个通用注解,可以用来处理任何HTTP方法,其具体方法由
每个注解的使用依赖于HTTP请求的语义,以及你如何打算处理请求数据。总体而言,@RequestParam
和@PathVariable
用于从URL获取数据,而@RequestBody
用于处理复杂的请求体内容。
SpringBoot不同的@Mapping使用
https://xiamu-ssr.github.io/Hexo/2024/01/27/2024-H1/2024-01-27-16-06-04/