@ResponseBody注解作用与原理「建议收藏」

@ResponseBody注解作用与原理「建议收藏」1、概念注解@ResponseBody,使用在控制层(controller)的方法上。2、作用作用:将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。如果返回值是字符串,那么直…

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

1、概念

        注解 @ResponseBody,使用在控制层(controller)的方法上。

2、作用

        作用:将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。

        当方法上面没有写ResponseBody,底层会将方法的返回值封装为ModelAndView对象。

        如果返回值是字符串,那么直接将字符串写到客户端;如果是一个对象,会将对象转化为json串,然后写到客户端。

3、注意编码

       注解中我们可以手动修改编码格式,例如@RequestMapping(value=”/cat/query”,produces=”text/html;charset=utf-8″),前面是请求的路径,后面是编码格式。

4、原理

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

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

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

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


相关推荐

  • 关于CPLD与FPGA的对比分析

    关于CPLD与FPGA的对比分析1.PLD/FPGA/CPLDPLD(ProgrammableLogicDevice):可编程逻辑器件,数字集成电路半成品,芯片上按照一定的排列方式集成了大量的门和触发器等基本逻辑元件,使用者按照设计要求运用开发工具将这些片内的元件连接起来,此过程称为编程;FPGA:基于查找表技术,要外挂配置用的EEPROM的PLD产品;由逻辑功能块排列为阵列,并由可编程的内部连线连接…

    2022年6月3日
    38
  • JMH微基准测试入门案例

    JMH微基准测试入门案例JMH-javaMicrobenchmarkHarness微基准测试,他是测试某个方法的性能到底是好还是不好。这个测试框架是2013年发出来的,有JLT开发人员开发,后来归到OpenJDK下面。官网:http://openjdk.java.net/projects/code-tools/jmh/下面介绍什么是JMH,他是用来干什么的,怎么使用?基于idea中使用。创建…

    2022年7月11日
    21
  • 什么是CMS_SiteServer CMS

    什么是CMS_SiteServer CMS纵观现如今国内CMS程序,大有百花争艳的感觉,随着企业建站需求的复杂度和功能的不断扩展,传统的三五个人写一段代码即告网站建已经行不通,于是以内容管理为应用核心的CMS产品大行其道。  这些CMS系统大体上基于两套框架编写:PHP+MySQL和.NET+MSSQL。在PHP中比较有名的就有DeDeCMS、PHP168、帝国CMS、Supesite等,在.NET方面就有zoomla!…

    2022年9月29日
    4
  • Js实用函数合集

    Js实用函数合集随机数生成器Math.random()转换为整数parseInt()日期时间函数(需要用变量调用):varb=newDate();//获取当前时间b.getTime()//获取时间戳b.getFullYear()//获取年份b.getMonth()+1;//获取月份b.getDate()//获取天b.getHours()//获取小时b.getMinutes()//获取分钟b.getSeconds()//获取秒数b.getDay()//获取星期几b.get

    2022年7月27日
    6
  • TiKV线程池_多线程池

    TiKV线程池_多线程池TiDB学习之TikV

    2022年9月23日
    5
  • PHP 开发API接口签名验证

    PHP 开发API接口签名验证

    2021年10月13日
    40

发表回复

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

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