Десериализатор модулей Джексона не работает после миграции весны с 2.0 на 2.1 - PullRequest
0 голосов
/ 23 мая 2019

Перед миграцией мы использовали bean-компонент для инициализации сериализатора / десериализатора для обработки метки времени -> 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, но теперь оно больше не работает.

Если мы помещаем точку останова в десериализатор, мы даже не пропускаем ее ... Это полностью игнорируется.

1 Ответ

0 голосов
/ 23 мая 2019

Мы нашли другой способ создания десериализатора / сериализатора с помощью Spring и Jackson.

Вместо создания класса @Configuration с аннотацией @Bean для нашего десериализатора / сериализатора, мы создали новый класс с аннотацией @JsonComponent (https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/jackson/JsonComponent.html) и мы поместили в него оба наших десериализатора / сериализатора. Теперь все работает нормально.

...