HttpMessageConverter (HTTP 消息转换器) 是 Spring MVC 框架中一个非常核心的组件,它的主要作用是在 HTTP 请求和响应体与 Java 对象之间进行双向转换。
核心作用:
-
读取请求体 (Request Body) 到 Java 对象:
- 当 Controller 方法的参数使用
@RequestBody注解时,Spring MVC 会尝试找到一个合适的HttpMessageConverter来读取 HTTP 请求体的内容 (例如,JSON 或 XML 字符串),并将其反序列化 (deserialize) 成方法参数指定的 Java 对象类型。 - 例如,一个 POST 请求发送了 JSON 数据
{ "name": "John", "age": 30 },如果 Controller 方法参数是@RequestBody User user,那么某个HttpMessageConverter(如MappingJackson2HttpMessageConverter) 会负责将这个 JSON 转换为一个User对象。
- 当 Controller 方法的参数使用
-
将 Java 对象写入响应体 (Response Body):
- 当 Controller 方法使用
@ResponseBody注解 (或者 Controller 类使用@RestController注解) 标记时,Spring MVC 会尝试找到一个合适的HttpMessageConverter来将方法的返回值 (通常是一个 Java 对象) 序列化 (serialize) 成特定格式 (例如,JSON 或 XML 字符串),并将其写入 HTTP 响应体。 - 例如,一个 Controller 方法返回一个
User对象,如果内容协商确定应该返回 JSON,那么某个HttpMessageConverter会将User对象转换为 JSON 字符串并发送给客户端。
- 当 Controller 方法使用
它是如何实现自动转换的 (特别是 JSON/XML)?
这个自动转换过程涉及到以下几个关键步骤和组件:
-
注册 <

最低0.47元/天 解锁文章
2741

被折叠的 条评论
为什么被折叠?



