浅析@ResponseBody注解作用和原理

浅析@ResponseBody注解作用和原理    @ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。    假如是字符串则直接将字符串写到客户端,假如是一个对象,此时会将对象转化为json串然后写到客户…

大家好,又见面了,我是你们的朋友全栈君。

       @ResponseBody这个注解通常使用在控制层(controller)的方法上,其作用是将方法的返回值以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。

       假如是字符串则直接将字符串写到客户端,假如是一个对象,此时会将对象转化为json串然后写到客户端。这里需要注意的是,如果返回对象,按utf-8编码。如果返回String,默认按iso8859-1编码,页面可能出现乱码。因此在注解中我们可以手动修改编码格式,例如@RequestMapping(value=”/cat/query”,produces=”text/html;charset=utf-8″),前面是请求的路径,后面是编码格式。

       那么,控制层方法的返回值是如何转化为json格式的字符串的呢?其实是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。如果是bean对象,会调用对象的getXXX()方法获取属性值并且以键值对的形式进行封装,进而转化为json串。如果是map集合,采用get(key)方式获取value值,然后进行封装。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140116.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 针对Java易遭受逆向工程攻击的原因

    针对Java易遭受逆向工程攻击的原因

    2021年8月24日
    43
  • 使用SpringBoot的@Async实现异步调用方法,以及自己开启新线程异步调用

    使用SpringBoot的@Async实现异步调用方法,以及自己开启新线程异步调用一.springboot的@Async注解实现异步要在springboot中使用异步调用方法,只要在被调用的方法上面加上@Async就可以了1.准备工作准备一个springboot工程,在Application类上加上EnableAsync注解开启异步/***@Author:zgd*@Date:18/09/1210:27*@Description:…

    2022年7月11日
    15
  • 博客备份工具BlogDown 软件使用感想

    博客备份工具BlogDown 软件使用感想最近在找博客备份相关的工具,看到了一个不错的博客备份工具BlogDown。使用博客备份BlogDown工具是可以制作博客电子书的。他支持导出多种文件格式,包括常用的电子书格式chm,还有word格式doc而且他导出的文件中包含博客中的图片,无用联网,是真正的博客图片备份,不是只备份图片地址。对于我们这些博客爱好者来说是很好的工具,对于文章的收藏也很方便。在博客爱好者中,刚开

    2022年7月25日
    11
  • Jave2-Java音频视频编码器

    Jave2-Java音频视频编码器文章目录Jave2-Java音频视频编码器Jave2是什么Installation and requirementsJave2 怎么玩支持的操作系统+要求支持 Maven/Gradle实战演练将arm文件转为mp3文件使用监听器监听转换进度-高级一点的用法问题收集Jave2 总结Jave2是什么JAVE2(Java音频视频编码器)库是ffmpeg项目上的Java包装器。 开发人员可以利用JAVE2将音频和视频文件从一种格式转码为另一种格式。 在示例中,您可以将AVI

    2022年2月28日
    61
  • 神经网络优化(初始化权重)

    神经网络优化(初始化权重)使隐藏层饱和了,跟之前我们说的输出层饱和问题相似,对于输出层,我们用改进的cost函数,比如cross-entropy,但是对于隐藏层,我们无法通过cost函数来改进更好的方法来初始化权重?因为传统的初始化权重问题是用标准正态分布(均值为0,方差为1)随机初始化的,这其实是存在不合理的部分。标准正态分布:可以看出真实数据的

    2022年9月27日
    5
  • php 取历史值,从新浪获取股票历史数据[通俗易懂]

    php 取历史值,从新浪获取股票历史数据[通俗易懂]转自:http://blog.163.com/fluxray_sensor/blog/static/2965101520085213574929/这几天在网上找股票的历史数据想研究研究,最后找到一个不错的接口,来自于雅虎,是在一个博客上找到的,地址为:http://www.bizeway.net/read.php?317。不过这个不是我第一个找到的接口,最初始我是想直接解析新浪的历史交易页面,不…

    2022年6月24日
    21

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号