1. 程式人生 > >Spring MVC4設定使用fastjson作為json解析器,替代jackson

Spring MVC4設定使用fastjson作為json解析器,替代jackson



不論是效能、易用性、特性支援,fastjson都要遠好於預設的jackson,所以如果應用程式經常使用ajax進行資料互動,建議用fastjson作為預設解析器,官網:www.fhadmin.org只需要簡單配置: 
<mvc:annotation-driven> 
  <mvc:message-converters register-defaults="true"> 
    <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">  
      <property name="supportedMediaTypes" value="application/json"/> 
      <!--設定fastjson特性--> 
      <property name="features"> 
        <array> 
          <!--設定null值也要輸出,fastjson預設是關閉的--> 
          <value>WriteMapNullValue</value> 
          <!--設定使用文字方式輸出日期,fastjson預設是long--> 
          <value>WriteDateUseDateFormat</value> 
        </array> 
      </property> 
    </bean> 
  </mvc:message-converters>  
</mvc:annotation-driven> 
然後引入fastjson的包就好了。 

附Spring MVC4示例配置檔案: 
<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.1.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd"> 

<!--包掃描--> 
<context:component-scan base-package="com.rs" /> 

<!--資料連線池,此處使用c3p0--> 
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"> 
  <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
  <property name="jdbcUrl" value="jdbc:mysql://x.x.x.x:3306/test" /> 
  <property name="user" value="USER" /> 
  <property name="password" value="PASS" /> 
</bean> 

<!--配置事務管理器--> 
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
  <property name="dataSource" ref="dataSource" /> 
</bean> 

<!--使用fastjson作為json解析器--> 
<mvc:annotation-driven> 
  <mvc:message-converters register-defaults="true"> 
    <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">  
      <property name="supportedMediaTypes" value="application/json"/> 
      <property name="features"> 
        <array> 
          <value>WriteMapNullValue</value> 
          <value>WriteDateUseDateFormat</value> 
        </array> 
      </property> 
    </bean> 
  </mvc:message-converters>  
</mvc:annotation-driven> 

<!--注入JdbcTemplate--> 
<bean id="jdbc" class="org.springframework.jdbc.core.JdbcTemplate"> 
  <property name="dataSource" ref="dataSource" /> 
</bean> 

<!--配置檢視--> 
<bean id="jspView" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
  <property name="prefix" value="/WEB-INF/views/" /> 
  <property name="suffix" value=".jsp" /> 
</bean> 

<!--配置攔截器--> 
<mvc:interceptors> 
  <mvc:interceptor> 
    <!--攔截匹配路徑的html和do檔案--> 
    <mvc:mapping path="/*/*.html" /> 
    <mvc:mapping path="/*/*.do" /> 
    <!--放過部分請求--> 
    <mvc:exclude-mapping path="/home/login.html" /> 
    <mvc:exclude-mapping path="/home/logout.html" /> 
    <!--自定義的攔截器--> 
   <bean class="com.nids.web.ActionInterceptor" /> 
</mvc:interceptor> 
</mvc:interceptors> 

</beans>