Springboot springmvc 配置messageConverter(StringHttpMessageConverter)不生效原因解决

解决方法一:不推荐

解决方法如下,因为如果不设置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,这种情,无论怎么改都会乱码的。

猜你喜欢

转载自blog.csdn.net/blueboz/article/details/79431729