1. 程式人生 > >SpringMVC整合FastJson:用"最快的json轉換工具"替換SpringMVC的預設json轉換

SpringMVC整合FastJson:用"最快的json轉換工具"替換SpringMVC的預設json轉換

一.環境說明

  • Windows 10 1709
  • Spring 4.3.12.RELEASE
  • FastJson 1.2.40
  • IDEA 2017.3
  • JDK 1.8.0_144

二.開始配置

在SpringmMVC的配置檔案中加入如下程式碼  (目前最新版的配置是這樣,以前版本的配置方式貌似不行了)

<mvc:annotation-driven>
        <!--不使用預設訊息轉換器 -->
        <mvc:message-converters register-defaults="false">
            <!--spring訊息轉換器 -->
            <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
            <bean class="org.springframework.http.converter.BufferedImageHttpMessageConverter"/>

            <!--解決@Responcebody中文亂碼問題 -->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
            <!--配合fastjson支援 -->
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="defaultCharset" value="UTF-8"/>
                <property name="supportedMediaTypes">
                    <list>
                        <!--順序保持這樣,避免IE下載出錯 -->
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json</value>
                    </list>
                </property>
                <property name="fastJsonConfig" ref="fastJsonConfig"/>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!--fastJsonConfig -->
    <bean id="fastJsonConfig" class="com.alibaba.fastjson.support.config.FastJsonConfig">
        <!--預設編碼格式 -->
        <property name="charset" value="UTF-8"/>

        <property name="serializerFeatures">
            <list>
                <value>WriteNullListAsEmpty</value>
                <value>WriteDateUseDateFormat</value>
                <value>PrettyFormat</value>
                <value>WriteMapNullValue</value>
                <value>WriteNullStringAsEmpty</value>
                <value>WriteNullListAsEmpty</value>
                <value>DisableCircularReferenceDetect</value>
            </list>
        </property>

    </bean>
    <!--fastjson支援配置結束 -->