首页 > 其他分享 >HttpMessageConverter<T>的了解

HttpMessageConverter<T>的了解

时间:2023-05-26 19:13:13浏览次数:35  
标签:HttpMessageConverter 请求 处理 报文 Accept 响应 了解

消息转换器的具体工作机制示意图

 SpringMVC处理json底层就是依靠HttpMessageConverter来实现的。

前台发来一个请求报文,根据请求报文的类型来选择一个实现了HttpinputMessage的接口的类来封装信息,然后根据请求头的Accept属性来选择对应的实现了HttpMessageConverter的接口的类来进行转换,然后打到SpringMVC的controller的对应的方法进行处理,处理好后根据响应头的Accept属性选择对应的HttpMessageConverter来进行转换,封装成HttpoutputMessage返回给响应报文。

处理 JSON-底层实现(HttpMessageConverter<T>) 1. 使用 HttpMessageConverter<T> 将请求信息转化并绑定到处理方法的入参中, 或将响应 结果转为对应类型的响应信息,Spring 提供了两种途径: √ 使用 @RequestBody / @ResponseBody 对目标方法进行标注 √ 使用 HttpEntity<T> / ResponseEntity<T> 作为目标方法的入参或返回值 2. 当 控 制 器 处 理 方 法 使 用 到 @RequestBody/@ResponseBody 或 HttpEntity<T>/ResponseEntity<T> 时, Spring 首先根据请求头或响应头的 Accept 属性选择 匹配 的 HttpMessageConverter, 进而 根据参 数类型 或泛型 类型的 过滤得 到匹配 的 HttpMessageConverter, 若找不到可用的 HttpMessageConverter 将报错

标签:HttpMessageConverter,请求,处理,报文,Accept,响应,了解
From: https://www.cnblogs.com/gyhdeblog/p/17435600.html

相关文章

  • 【众惠生活】社区反传销宣传需要了解哪些?
    随着互联网和共享经济的发展,众惠生活成为了新的生活方式。不仅可以提高生活质量,还能促进社会和谐发展。然而,一些不法商家利用众惠生活的概念,打着共享、互助的旗号,实施传销活动,给人们带来了极大的伤害和困扰。因此,社区反传销宣传显得尤为重要。首先,我们需要了解传销的定义和危害。传......
  • 想增速又提效?又想数字化转型?来了解下低代码快速开发平台
    前言:当前,数字化转型升级是不少企业今后要坚定不移的发展方向。在职场中,如何提升办公协作效率?如何让企业内部的数据做好统一管理,发挥它应有的价值和作用?如何帮助企业快速进入数字化转型升级的新道路?这些问题都可以让低代码快速开发平台来解决。因为专业的事交由专业的机构来实现,能......
  • 你真正了解什么是接口测试么?接口实战一“篇”入魂
    最近在工作中,看到一些新手测试同学,对接口测试存在很多疑问,甚至包括一些从事软件测试3,5年的同学,在聊到接口时,也是一知半解;今天借着这个机会,对接口测试做个实战教学,顺便总结一下经验,分享给大家。计划拆分成4个模块跟大家做一个分享,(接口测试、接口基础知识、接口自动化、接口进阶)感兴......
  • 一文全了解Mybatis
    初步了解总体架构设计Mybatis整体框架如下:接口层MyBatis和数据库的交互有两种方式:使用传统的MyBatis提供的API;使用Mapper接口;使用传统的MyBatis提供的API这是传统的传递StatementId和查询参数给SqlSession对象,使用SqlSession对象完成和数据库的交互;My......
  • Python从0到1丨了解图像形态学运算中腐蚀和膨胀
    摘要:这篇文章将详细讲解图像形态学知识,主要介绍图像腐蚀处理和膨胀处理。本文分享自华为云社区《[Python从零到壹]四十七.图像增强及运算篇之腐蚀和膨胀详解》,作者:eastmount。一.形态学理论知识数学形态学的应用可以简化图像数据,保持它们基本的形状特征,并出去不相干的结构。......
  • 【算法学习前置】了解JS中的数组
    介绍此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法、字符串方法、遍历方法、高阶函数、正则表达式以及相关数学知识。文章主要包含以下内容:数组常用方法字符串常用方法常用遍历方法&高阶函数常用正则表达式数学知识一、数组常用方法push()在尾部追加,类似......
  • 【算法学习前置】了解js中的字符串
    二、字符串常用方法chat()返回指定索引位置处的字符。类似于数组用中括号获取相应下标位置的数据。conststr='abcdef'console.log(str.chat(2))//'c'console.log(srt[2])//'c'concat()类似数组的concat(),用来返回一个合并拼接两个或两个以上字符串。原字符串不......
  • Java如何生成随机数?要不要了解一下!
    前言我们在学习Java基础时就知道可以生成随机数,可以为我们枯燥的学习增加那么一丢丢的乐趣。本文就来介绍Java随机数。一、Random类介绍在Java中使用Random工具类来生成随机数,该类在java.util包下,在JDK1.0版本就存在了。Random单词本身就是随机、随意、任意的意思......
  • webpack-了解devServer中常用的选项
    devServer节点在webpack.config.js配置文件中,可以通过devServer节点对webpack-dev-server插件进行更多的配置,示例代码如下:devServer:{ open:ture,//初次打包完成后,自动打开浏览器 host:'127.0.0.1',//实时打包所使用的主机地址 port:80,//实时打包所使用的端口号}注意:凡是......
  • drf——反序列化校验源码(了解)、断言、drf之请求和响应、视图之两个视图基类
    1.模块与包#模块与包 模块:一个py文件被别的py文件导入使用,这个py文件称之为模块,运行的这个py文件称之为脚本文件包:一个文件夹下有__init__.py#模块与包的导入问题'''1.导入模块有相对导入和绝对导入,绝对导入的路径是从环境变量开始的2.导入任何模块,如果......