SpringBoot 中 @RequestBody 和 @RequestParam区别
一、@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 来接收。