首先,它们都是Spring框架中用于处理Http请求参数的注解。
区别:
-
用途:
@RequestParam
: 用于从请求的 URL 查询参数或表单数据中提取单一的参数值。@RequestBody
: 用于从请求体中获取整个请求内容,主要用于接收复杂对象(例如JSON或XML格式的数据)。
-
数据来源:
@RequestParam
: 从请求的 URL 查询参数或表单数据中提取数据,通常用于处理简单的键值对。@RequestBody
: 从请求体中获取数据,通常用于处理复杂的结构化数据,例如JSON对象。
-
传递的数据类型:
@RequestParam
: 通常用于基本数据类型(如字符串、整数)或简单对象。@RequestBody
: 用于接收复杂对象,可以是自定义的Java对象,也可以是Map、List等。
@RequestParam 注解主要用于get请求中键值对的键名的映射(POST请求等一系列请求也可以),解析表单数据用于完成映射,主要用于集合的映射(不然会报错)。
@RequestBody注解:将JSON数据等复杂对象映射到形参的实体类对象中(JSON中的key和实体类中的属性名要保持一致)。