HttpMessageConverter<T>的了解

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

 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 将报错
posted @   烤烤栗子  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示