RabbitMq Jackson Spring - поле ввода OffsetDateTime - это строка на выходе

Rabbit MQ с Java 11. Парсер из Джексона в Json.

@Bean
    public Jackson2JsonMessageConverter jackson2MessageConverter() {
        ObjectMapper mapper = new ObjectMapper().findAndRegisterModules();
        return new Jackson2JsonMessageConverter(mapper);
    }

С этим конфигом - у меня при выходе был Double.

И с этим

@Bean
    public Jackson2JsonMessageConverter jackson2MessageConverter() {
        return new Jackson2JsonMessageConverter();
    }

Я получил строку при выходе.

У меня есть класс DTO с полем

@JsonFormat(pattern = LETTER_TIME_FORMAT)
@JsonDeserialize(using = OffsetDateTimeDeserializer.class)
@JsonSerialize(using = OffsetDateTimeSerializer.class)
private OffsetDateTime eventStart;

И мой класс OffsetDateTimeDeserializer. потому что я не нашел реализации по умолчанию.

public class OffsetDateTimeDeserializer extends JsonDeserializer<OffsetDateTime> {

    private DateTimeFormatter formatter = DateTimeFormatter.ofPattern(LETTER_TIME_FORMAT);

    @Override
    public OffsetDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
        return OffsetDateTime.parse(jsonParser.getText(), formatter);
    }
}

Я хочу, чтобы мой метод RabbitMqMessageListener получил мой класс DTO с тем же Deserialized OffsetDateTime. Но на самом деле у меня это было в формате String. Как я могу получить свой вход OffsetDateTime на выходе???

0 ответов

Другие вопросы по тегам