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转换对象,写入输出流。

  • 相关阅读:
    SQL Server OPENQUERY使用
    VS2013程序打包报 ISEXP : error -****: An error occurred streaming
    IIS重新注册
    c#之反射(Reflection)
    c#之Lambda表达式
    c#之委托事件(DelegateEvent)
    c#之委托详解(Delegate)
    git将文件托管到github上遇到的问题
    c#之泛型详解(Generic)
    linux下操作memcache的操作命令
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/responseBody.html
Copyright © 2011-2022 走看看