学而实习之 不亦乐乎

SpringBoot 中 @RequestBody 和 @RequestParam区别

2023-03-23 19:55:57

一、@RequestBody

@RequestBody 一般用于 POST 方法,因为 POST 的数据都在包含在请求体中的。只能接收 JSON 格式的数据,不能解析 form-data 格式的数据。同时 @RequestBody 只能有一个

实例如下:

@PostMapping("/addcustomer")
public Result addCustomer(@RequestBody String jsondata){

   //获取的是json格式的数据,对数据进行对象的转换
   CustomerInfo customerInfo = JSON.parseObject(jsondata,CustomerInfo.class);
   return customerInfoService.addCustomer(customerInfo);
}

二、@RequestParam

@RequestParam一般用于 GET 方法,也可以用于 POST 方法,数据放在请求头中。@RequestParam 一般用于默认 key-value 格式数据和 form-data 格式的数据的接收,@RequestParam可以有多个,可为多个属性设置 @RequestParam。当接收 POST 方法传来的数据时 @RequestParam 不能解析 JSON 格式数据。

三、小结

如果参数是放在请求体中,服务器端需要用 @RequestBody 才能接收到;如果不是放在请求体中,那么服务器端接收数据时,可用 @RequestParam 来接收。