@RequestBody 將HTTP請求正文轉換爲適合的HttpMessageConverter對象。html
HttpMessageConverter接口,須要開啓<mvc:annotation-driven />。
AnnotationMethodHandlerAdapter將會初始化7個轉換器,能夠經過調用AnnotationMethodHandlerAdapter的getMessageConverts()方法來獲取轉換器的一個集合 List<HttpMessageConverter>
引用
ByteArrayHttpMessageConverter
StringHttpMessageConverter
ResourceHttpMessageConverter
SourceHttpMessageConverter
XmlAwareFormHttpMessageConverter
Jaxb2RootElementHttpMessageConverter
MappingJacksonHttpMessageConverter(spring 3.x)spring
MappingJackson2HttpMessageConverter(spring 4.x)json
能夠理解爲,只要有對應協議的解析器,你就能夠經過幾行配置,幾個註解完成協議——對象的轉換工做!
PS:Spring默認的json協議解析由Jackson完成。 mvc
例如:app
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>spa