<mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean;
其中AnnotationMethodHandlerAdapter已经默认了4个HtrpMessageConvert, 如下:
StringHttpMessageConverter;
ByteArrayHttpMessageConverter;
SourceHttpMessageConverter;
XmlAwareFormHttpMessageConverter;
当然如果需要其他的信息转换可以自行配置,如下我的配置,当然有些是没有用到,这里只是一个事例:
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=utf-8</value>
</list>
</property>
</bean>
<bean id="stringHttpMessageConverter" class="org.springframework.http.converter.StringHttpMessageConverter"></bean>
<bean id="byteArrayHttpMessageConverter" class="org.springframework.http.converter.ByteArrayHttpMessageConverter"></bean>
<bean id="bufferedImageHttpMessageConverter" class="org.springframework.http.converter.BufferedImageHttpMessageConverter"></bean>
<bean id="sourceHttpMessageConverter" class="org.springframework.http.converter.xml.SourceHttpMessageConverter"></bean>
<bean id="xmlAwareFormHttpMessageConverter" class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"></bean>
<!-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" /><!-- json转换器 -->
<ref bean="stringHttpMessageConverter"/>
<ref bean="byteArrayHttpMessageConverter"/>
<ref bean="bufferedImageHttpMessageConverter"/>
<ref bean="sourceHttpMessageConverter"/>
<ref bean="xmlAwareFormHttpMessageConverter"/>
</list>
</property>
</bean>
<!--
这里如果启用这个驱动程序会出错的,因为annotation-driven包括【DefaultAnnotationMethodHandlerAdapter,AnnotationMethodHandlerAdapter】
其中AnnotationMethodHandlerAdapter的默认配置没有 MappingJacksonHttpMessageConverter这个消息转换,而且启用改配后直接安照默认的配置转换信息
因此会出错
-->
<!-- 开启注解
<mvc:annotation-driven/>
-->