记录Spring注解使用时的问题

一次使用的时候发现,这两个注解都能用于接收参数,那么它俩的区别是啥呢?

@RequestParam

用来处理 Content-Type 为 application/x-www-form-urlencoded 编码的内容。
@RequestParam接收的参数是来自requestHeader中,即请求头。通常用于GET请求,像POST、DELETE等其它类型的请求也可以使用。

@RequestBody

该注解使用系统默认配置HttpMessageConverter来解析,然后将相应的数据绑定到要返回的对象上

  • 接收的参数是来自requestBody中,即请求体。
  • 一般用于处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据,multipart/form-data, 即使使用@RequestBody不能处理这种格式的数据。
  • 通常用于接收POST、DELETE等类型的请求数据,GET类型也可以适用。

@ResponseBody

  • 该注解用于将Controller的方法返回的对象,通过适当的转换器(HttpMessageConverter)转换为指定格式后,写入到Response对象的body数据区。
  • 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用。

TODO 后续继续添加

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。