springmvc中RequestMappingHandlerAdapter与HttpMessageConverter

一.DispatcherServlet 默认装配 RequestMappingHandlerAdapter ,而 RequestMappingHandlerAdapter 默认装配如下 HttpMessageConverter:

HttpMessageConverter:
springmvc中RequestMappingHandlerAdapter与HttpMessageConverter_第1张图片
2) 加入 jackson jar 包后, RequestMappingHandlerAdapter
装配的 HttpMessageConverter 如下:
springmvc中RequestMappingHandlerAdapter与HttpMessageConverter_第2张图片

二. HttpMessageConverter

1) HttpMessageConverter 是 Spring3.0 新添加的一个接口,负责将请求信息转换为一个对象(类型为 T),将对象(类型为 T)输出为响应信息
2) HttpMessageConverter接口定义的方法:
① Boolean canRead(Class clazz,MediaType mediaType): 指定转换器可以读取的对象类型,即转换器是否可将请求信息转换为 clazz 类型的对象,同时指定支持 MIME 类型(text/html,applaiction/json等)
② Boolean canWrite(Class clazz,MediaType mediaType):指定转换器是否可将 clazz 类型的对象写到响应流中,响应流支持的媒体类型在MediaType 中定义。
③ List getSupportMediaTypes():该转换器支持的媒体类型。
④ T read(Class clazz,HttpInputMessage inputMessage):将请求信息流转换为 T 类型的对象。
⑤ void write(T t,MediaType contnetType,HttpOutputMessgae outputMessage):将T类型的对象写到响应流中,同时指定相应的媒体类型为 contentType。
springmvc中RequestMappingHandlerAdapter与HttpMessageConverter_第3张图片
springmvc中RequestMappingHandlerAdapter与HttpMessageConverter_第4张图片
springmvc中RequestMappingHandlerAdapter与HttpMessageConverter_第5张图片

HttpMessageConverter的主要作用是将请求信息转换为具体的java对象,将对象输出为响应信息

你可能感兴趣的:(springmvc)