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 将报错
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗