您的位置:首页 > 理论基础 > 计算机网络

springmvc HttpMessageConverter(http消息转换器)

2017-02-12 17:26 429 查看
HttpMessageConverter 主要用于处理request请求报文转java对象(@RequestBody) 和 java对象转response响应报文

此类方法列表:
//用于对@RequestBody注解的参数类型判断是否是支持mediaType格式转换
boolean canRead(Class<?> clazz, MediaType mediaType);
//用于对@ResponseBody注解的返回值类型判断是否是支持mediaType格式转换
boolean canWrite(Class<?> clazz, MediaType mediaType);
//用于返回MediaType列表供其它方法使用,一般配置了<mvc:annotion-driven/>标签就自带了常用的几个MediaType
List<MediaType> getSupportedMediaTypes();
//从请求报文中(封装成HttpInputMessage)获取请求参数,并转换成@RequestBody标注的java类型
T read(Class<? extends T> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException;
//用于将@ResponseBody标注的返回值类型转换成对应的响应报文(封装成HttpOutputMessage),输出浏览器
void write(T t, MediaType contentType, HttpOutputMessage outputMessage)
throws IOException, HttpMessageNotWritableException;

HttpMessageConverter实际上由RequestResponseBodyMethodProcessor调用,


RequestResponseBodyMethodProcessor实现了2个接口:




HandlerMethodArgumentResolver


方法列表:

//用于判断是否使用了@RequestBody 注解
boolean supportsParameter(MethodParameter parameter);
//调用HttpMessageConverter的read方法,并做相应的处理
Object resolveArgument(MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest,
WebDataBinderFactory binderFactory) throws Exception;
HandlerMethodReturnValueHandler

方法列表:


//用于判断是否使用了@ResponseBody 注解
boolean supportsReturnType(MethodParameter returnType);
//调用HttpMessageConverter的write方法,并做相应的处理
void handleReturnValue(Object returnValue,
MethodParameter returnType,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest) throws Exception;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐