zoukankan      html  css  js  c++  java
  • @ResponseBody注解

    作用

      @ResponseBody注解表示该方法的返回结果直接写入HTTP response body

    原理

      在使用此注解之后跳过视图处理器,将返回的对象通过适当的转换器转换为指定的格式之后,直接将数据写入到输出流中。

      它的效果等同于通过response对象输出指定格式的数据:response.getWriter().write(jsonArray.toString());

      “通过适当的转换器转换为指定的格式”,即:调用适合HttpMessageConverter的Adapter转换对象

      HttpMessageConverter 接口,需要开启 <mvc:annotation-driven /> ,这个默认配置中,AnnotationMethodHandlerAdapter 将会初始化7个转换器:

        ByteArrayHttpMessageConverter
        StringHttpMessageConverter
        ResourceHttpMessageConverter
        SourceHttpMessageConverter
        XmlAwareFormHttpMessageConverter
        Jaxb2RootElementHttpMessageConverter
        MappingJacksonHttpMessageConverter

    用途

      通常用来返回JSON数据或者是XML数据

      1、一般在异步获取数据时使用
      2、觉得也可以用在提供接口上,实现前后端分离,在其他地方(比如手机的混合APP中)直接调用后端数据,返回json

      @ResponseBody必须要有返回对象,(序列化一个返回对象然后注入解释)可以在配置文件中指定注解的对象,可以是json/html/xml等

    和RequestBody 比较

      Spring 3.X系列增加了新注解 @ResponseBody , @RequestBody
      @RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。
      @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

  • 相关阅读:
    操作系统面试题(四)
    计算机网络面试题(三)
    redis和mongodb面试题(一)
    MySQL面试题(二)
    数据库基础面试题(一)
    RoBERTa模型总结
    BERT模型总结
    动态规划-Dynamic Programming(DP)
    XGBoost原理学习总结
    re模块的使用
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/responseBody.html
Copyright © 2011-2022 走看看