作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在使用最新的 Spring 4.2.x,最近从 Jackson Mapper 2.6.3 升级到 2.8.8,现在我们正在注册模块。
这是 spring-servlet.xml 的一部分:
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd"></constructor-arg>
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
这是我们在代码中映射 json 文件的内容:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new ParameterNamesModule());
mapper.registerModule(new Jdk8Module());
mapper.registerModule(new JavaTimeModule());
所以,我想做的是配置“spring-servlet”和“MappingJackson2HttpMessageConverter”,以便我可以添加要注册的模块。
是的,我们还没有开始使用@Configuration,我们仍在使用我根本不介意的XML。
感谢您的帮助!
最佳答案
因此,经过一些测试和反复试验,我们想出了一个如下所示的 springmvc-servlet.xml:
<context:annotation-config />
<context:component-scan base-package="com.tomholmes.mycode.core.server.controller" />
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="objectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="objectMapper"
class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="featuresToDisable">
<array>
<util:constant
static-field="com.fasterxml.jackson.databind.SerializationFeature.WRITE_DATES_AS_TIMESTAMPS" />
</array>
</property>
<property name="dateFormat">
<bean class="java.text.SimpleDateFormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd"></constructor-arg>
</bean>
</property>
<property name="modulesToInstall"
value="
com.fasterxml.jackson.datatype.jdk8.Jdk8Module,
com.fasterxml.jackson.datatype.jsr310.JavaTimeModule,
com.fasterxml.jackson.module.paramnames.ParameterNamesModule" />
</bean>
<bean id="jsonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="objectMapper" ref="objectMapper" />
</bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonHttpMessageConverter" />
</list>
</property>
</bean>
这个设置似乎成功了。
关于java - Spring 和 MappingJackson2HttpMessageConverter 和 registerModule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43946323/
我正在使用 Spring MVC、AJAX/JSON 和 Hibernate 从 MySQL 数据库中获取所有人。我编写了 JUnit 集成测试来验证我的服务,一切正常。 现在我这样调用它: @Req
我是一名优秀的程序员,十分优秀!