@RequestBody
和 @RequestParam
是用于在Spring框架中处理HTTP请求参数的注解。
@RequestBody
注解用于从HTTP请求的主体部分(Body)中提取参数值。它通常用于处理POST请求,其中请求参数以JSON、XML或其他自定义格式的数据作为请求体发送。通过使用@RequestBody
,Spring可以自动将请求体中的数据转换为Java对象,以便在方法中使用。
@PostMapping("/users")
public ResponseEntity createUser(@RequestBody User user) {
// 处理接收到的User对象
// ...
return ResponseEntity.ok().build();
}
上述代码中,@RequestBody
注解应用于 User
参数,它指示Spring从请求体中提取参数值并将其转换为 User
对象。
另一方面,@RequestParam
注解用于从HTTP请求的URL查询参数中提取参数值。它通常用于处理GET请求或将查询参数作为请求参数的POST请求。使用@RequestParam
,您可以将URL参数映射到方法的参数上。
@GetMapping("/users")
public ResponseEntity getUser(@RequestParam("id") int userId) {
// 使用userId查询用户信息
// ...
return ResponseEntity.ok().build();
}
上述代码中,@RequestParam
注解应用于 userId
参数,它指示Spring从URL的查询参数中提取名为 "id" 的值,并将其转换为 int
类型。
总结:
@RequestBody
用于从请求体中提取参数值,适用于处理POST请求,参数通常以JSON、XML等格式发送。@RequestParam
用于从URL的查询参数中提取参数值,适用于处理GET请求或将查询参数作为请求参数的POST请求。