春季不加载Javatimememememodule,春季更新后才加载遗产
我将项目从Spring Boot 2.3.8更新为2.6.7,然后将Jackson版本升级为2.13.2
我设置了Javatimememodule,例如:
@Bean
@Primary
public ObjectMapper objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.featuresToDisable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
builder.modulesToInstall(new JavaTimeModule());
return builder.build();
}
我有一个测试检查是否正确设置了Javetimemememememodule:
def "jackson config - adding JavaTimeModule and disable ADJUST_DATES_TO_CONTEXT_TIME_ZONE"(){
when:
def objectMapper = jacksonConfig.objectMapperBuilder()
then:
!objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
!objectMapper.getSerializationConfig().isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
objectMapper.getRegisteredModuleIds().contains("com.fasterxml.jackson.datatype.jdk8.Jdk8Module")
objectMapper.getRegisteredModuleIds().contains("com.fasterxml.jackson.datatype.jsr310.JavaTimeModule")
}
测试失败。 每次我调试时,我都会看到 “ com.fasterxml.jackson.datatype.jdk8.jdk8module”和“ Jackson-Datatype-jsr310”作为注册模块。 我看不到“ com.fasterxml.jackson.datatype.jsr310.javatimemodule”为注册模块
I updated my project from spring boot 2.3.8 to 2.6.7 and I upgrade the jackson version to 2.13.2
I set the JavaTimeModule like this:
@Bean
@Primary
public ObjectMapper objectMapperBuilder() {
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
builder.featuresToDisable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE);
builder.featuresToDisable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
builder.modulesToInstall(new JavaTimeModule());
return builder.build();
}
I have a Test checking if i set the JaveTimeModule correctly:
def "jackson config - adding JavaTimeModule and disable ADJUST_DATES_TO_CONTEXT_TIME_ZONE"(){
when:
def objectMapper = jacksonConfig.objectMapperBuilder()
then:
!objectMapper.getDeserializationConfig().isEnabled(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
!objectMapper.getSerializationConfig().isEnabled(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
objectMapper.getRegisteredModuleIds().contains("com.fasterxml.jackson.datatype.jdk8.Jdk8Module")
objectMapper.getRegisteredModuleIds().contains("com.fasterxml.jackson.datatype.jsr310.JavaTimeModule")
}
The test fails.
Everytime I debug it, I just see that
"com.fasterxml.jackson.datatype.jdk8.Jdk8Module" and "jackson-datatype-jsr310" as registered Modules.
I don't see "com.fasterxml.jackson.datatype.jsr310.JavaTimeModule" as a registered module
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论