Springboot springmvc 配置messageConverter(StringHttpMessageConverter)不生效原因解决
程序员文章站
2022-07-12 19:42:00
...
解决方法一:不推荐
解决方法如下,因为如果不设置register-default='false'Spring 会默认帮我们注册7个messageConvert 如下图
<bean id="messageConverter" class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"></constructor-arg>
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
</bean>
<mvc:annotation-driven enable-matrix-variables="true" content-negotiation-manager="contentNegotiationManager">
<mvc:message-converters register-defaults="false">
<ref bean="messageConverter"></ref>
</mvc:message-converters>
</mvc:annotation-driven>
如下图所示,而且StringHttpMessageConverter,网上有人说,需要把mvc:annotation注解移动到最后,也有人说,messageConverter需要在mvc-converter之前注入SPring容器,众说纷纭,不妨试试我这种方法,我的理解应该是,Spring会帮我们注入一些默认的,但是这些并不是我们需要的,而且我们在配置的时候,没有及时的覆盖掉Spring默认配置的。所以会造成配置之后无效果的问题。笔者Spring版本为5.0.3
maven依赖如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.3.RELEASE</version>
</dependency>
<mvc:annotation-driven enable-matrix-variables="true" content-negotiation-manager="contentNegotiationManager">
<mvc:message-converters register-defaults="false">
<ref bean="messageConverter"></ref>
<ref bean="jackson2HttpMessageConverter"></ref>
</mvc:message-converters>
<mvc:path-matching path-helper="mph"></mvc:path-matching>
</mvc:annotation-driven>
方法2 ,看看你的文件字符编码是否正确?
比如有的文件是GBK,有的文件是UTF-8,这种情,无论怎么改都会乱码的。