在迁移之前,我们使用了一个bean来初始化序列化器/解串器,以便处理Timestamp-> LocalDateTime:
@Bean
Module dateModuleDeserialiser() {
SimpleModule module = new SimpleModule();
module.addDeserializer(LocalDateTime.class, new JsonDeserializer<LocalDateTime>() {
@Override
public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
Long value = jsonParser.getLongValue();
return new Timestamp(value).toLocalDateTime();
}
});
return module;
}
一切正常,直到我们将Spring迁移到2.1。 我们做了这里标记的内容:https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring#with-spring-boot,但是现在它不再起作用了。
如果我们在反序列化器中放置一个断点,我们甚至都不会传递它……它被完全忽略了。
答案 0 :(得分:0)
我们找到了另一种使用Spring和Jackson创建解串器/序列化器的方法。
我们没有为我们的反序列化器/序列化器创建带有@Bean批注的@Configuration类,而是创建了具有注释@JsonComponent(https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/jackson/JsonComponent.html)的新类,并将我们的反序列化器/序列化器都放入其中。现在一切正常。