一、@requestBody
1、使用场景:http协议为不是默认的Content-type类型(application/x-www-form-urlcoded)的请求,eg:content-type:”application/json charset=utf-8”, 或者content-type:”application/xml charset=utf-8”。
2、接收的是HttpEntity,可以接收post请求,可以接受简单类型的属性,也可以接受对象类型,GET请求中,因为没有HttpEntity,所以@RequestBody并不适用。
二、@requestParam
1.使用场景:http协议为默认的Content-type类型(application/x-www-form-urlcoded)的get请求或者from表单的get/post请求,一般接收对象类型。
原理:在Content-Type: application/x-www-form-urlencoded的请求中,get 方式中queryString的值,和post方式中 body data的值都会被Servlet接受到并转化到Request.getParameter()参数集中,所以@RequestParam可以获取的到
2、不支持json类型
3、开发过程中,接受参数可以使用此注解,也可以不使用,如果不使用说明不是必传参数,使用说明是必传参数(required:是否必需,默认为 true,即 请求中必须包含该参数)。