SpringMvc-HttpMessageConverte

1. 接口

① HttpMessageConverter<T>负责将请求信息转换为一个对象(类型为 T)

② HttpMessageConverter<T>接口定义的方法:

Boolean canRead(Class<?> clazz,MediaType mediaType):

Boolean canWrite(Class<?> clazz,MediaType mediaType)

List<MediaType> getSupportMediaTypes()

T read(Class<? extends T> clazz,HttpInputMessage inputMessage)

void write(T t,MediaType contnetType,HttpOutputMessgae outputMessage)

实现类

功能说明

StringHttpMessageConverter

将请求信息转换为字符串

FormHttpMessageConverter

将表单数据读取到MultiValueMap中

XmlAwareFormHttpMessageConverter扩展于FormHttpMessageConverter,

如果部分表单属性是XML数据,可用该转换器进行读取

ResourceHttpMessageConverter

读写org.springframework.core.io.Resource 对象

BufferedlmageHttpMessageConverter

读写Bufferedlmage 对象

ByteAnrayHttpMessageConverter

读写二进制数据

SourceHttpMessageConverter

读写javax.xml.transform.Source 类型的数据

MarshallingHttpMessageConverter

通过Spring 的 org.springframework.xml.Marshaller 和 Unmarshaller 读写 XML 消息

Jaxb2RootElemengHttpMessageConverter

通过JAXB2读写XML消息,将请求消息转换到标注XmlRootElement和XxmlType直接的类中

MappingJacksonHttpMessageConverter

利用Jackson开源包的ObjectMapper读写JSON数据

RssChannelHttpMessageConverter

能遂读写RSS种子消息

AiomFeedHttpMessageConverter

和RssChannelHttpMessageConverter 能年读写 RSS 种子消息

2. 流程

使用 HttpMessageConverter<T> 将请求信息转化并绑定到处理方法的入参中或将响应结果转为对应类型的响应信息

使用 @RequestBody @ResponseBody对处理方法进行标注

使用 HttpEntity<T> ResponseEntity<T>作为处理方法的入参或返回值

Spring 首先根据请求头或响应头的Accept属性选择匹配的HttpMessageConverter, 进而根据参数类型或泛型类型的过滤得到匹配的 HttpMessageConverter, 若找不到可用的 HttpMessageConverter 将报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值