强迫Spring 3.1在Jackson 1 JARs的类路径上使用Jackson 2

时间:2013-01-12 21:29:37

标签: spring spring-mvc jackson

我有一个使用Maven构建的Spring MVC 3.1应用程序,我想使用Jackson 2进行JSON序列化/反序列化。我在我的pom.xml文件中明确地包含了Jackson 2.x依赖项,尽管我的应用程序具有内部使用Jackson 1.9.9的不同依赖项,并且我无法轻松删除该依赖项。

由于两个Jackson libs都存在于类路径中,因此Spring似乎默认使用Jackson版本1.9.9。

如何强制Spring MVC使用Jackson 2?

2 个答案:

答案 0 :(得分:4)

为了使这项工作,我不得不调整我的mvc:annotation-driven xml配置元素,如下所示:

<mvc:annotation-driven>
  <mvc:message-converters register-defaults="false">
    <bean id="jacksonMessageConverter" 
      class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
  </mvc:message-converters>
</mvc:annotation-driven>

答案 1 :(得分:1)

Spring 3.2中添加了对杰克逊2的支持,并将其移植到Spring 3.1.2。一旦你有这些版本之一,你只需要在类路径上的jackson-databind库described here

或者,Keith Donald在this gist中提到了this answer中MappingJackson2HttpMessageConverter的来源。