- Spring: 3.2.5.Release
Spring MVC: Global Settings for JSON<=>DateTime(Joda) with Jackson
- Jackson 2.3.0 =>
<com.fasterxml.jackson-version>2.3.0</com.fasterxml.jackson-version>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${com.fasterxml.jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>${com.fasterxml.jackson-version}</version>
- Joda 2.3 =>
<org.joda-time-version>2.3</org.joda-time-version>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${org.joda-time-version}</version>
</dependency>
I used this global Spring MVC global settings:
<!--Jackson - objectMapper format date setting -->
<beans:bean id="objectMapper"
class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
p:indentOutput="true" p:simpleDateFormat="yyyy-MM-dd'T'HH:mm:ss.SSSZ">
</beans:bean>
<!--Jackson - registerModule JodaModule -->
<beans:bean
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
p:targetObject-ref="objectMapper" p:targetMethod="registerModule">
<beans:property name="arguments">
<beans:list>
<beans:bean class="com.fasterxml.jackson.datatype.joda.JodaModule" />
</beans:list>
</beans:property>
</beans:bean>
<!-- Spring MVC: setting objectMapper in converter MappingJackson2HttpMessageConverter-->
<mvc:annotation-driven>
<mvc:message-converters>
<beans:bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<beans:property name="objectMapper" ref="objectMapper" />
</beans:bean>
</mvc:message-converters>
</mvc:annotation-driven>
This solution works.
Two questions:
1. Is there a more smart solution for manage dateTime format in global settings?
2. How set a default Timezone in this global settings?