所谓消息转换器,通俗来说将晦涩的消息转换成通俗易懂的消息。
对于java来说,通俗易懂的消息肯定是对象了。
对于请求和响应都有对应的body,这个body就是我们关注的消息。
请求时一般请求体为一段字符串,参数一般在url中,对于表单可以放在请求体中,也可以放在url中,总之可以将请求体看做客户端请求后台所带的字符串。
响应体则是渲染页面的依据,对于html页面,一般来说都是html的源代码。(servlet解析后的数据)
请求体和响应体都是需要有所谓的标识(Content-Type),这个标识就是告诉代码,我是一个什么格式(text,json,html等),通过这个标识,服务端可以知道请求发过来的数据是什么样的格式,需要进行什么样的格式化来更好的处理数据,客户端根据这个标识知道去渲染什么样的页面(响应结果),是直接返回数据(json),还是渲染页面(html)等。
还有就是Accept,这个标识的意义是客户端期望得到什么格式的响应体,服务器可以根据此字段选择合适的结果进行表述。
SpringMVC 提供了9个自带的消息转换器,对于消息转换器的调用,都是在RequestResponseBodyMethodProcessor类中完成的。它实现了HandlerMethodArgumentResolver和HandlerMethodReturnValueHandler两个接