Джексон Сериализировать дату как метки времени - PullRequest
0 голосов
/ 19 сентября 2018

Я обновил свой весенний загрузочный проект с 1.5.8 до 2.0.4.Я заметил, что ранее все наши даты возвращались как метки времени, что было хорошо.после обновления даты выходили как даты, чтобы снова вернуть их в качестве временных меток, я добавил в свой файл yml следующее:

jackson:
  serialization:
    write-dates-as-timestamps: true

Теперь все даты возвращаются как даты.Не могу понять, почему.У нас есть класс конфигурации, в котором определен bean-компонент jacksonMessageConverter (необходим для преобразования сообщений rabbitMq), но мы не уверены, что это как-то портит преобразование?

Любая помощь, высоко ценимая

public class ApplicationConfig{
    @Bean
    public AuditorAware<String> auditorProvider() {
        return new AuditorAwareImpl();
    }

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

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory = new 
        CachingConnectionFactory(<host>);
        connectionFactory.setUsername(<user>);
        connectionFactory.setPassword(<pas>);
        connectionFactory.setVirtualHost(<vhost>);
        return connectionFactory;
    }

    @Bean
    public RabbitTemplate rabbitTemplate() {
        return new RabbitTemplate(connectionFactory());
    }

Обновление:

С тех пор я добавил следующий класс конфигурации и теперь он работает, есть идеи, зачем мне это нужно?И почему он не был выбран из свойств весенней загрузки?

@Bean
    public Jackson2ObjectMapperBuilder objectMapperBuilder() {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        builder.featuresToEnable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        return builder;
    }

Он не работает в полях даты, где я определил формат как таковой, как я могу решить эту проблему?:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")  

1 Ответ

0 голосов
/ 19 сентября 2018

Разве это не должно быть:

spring:
  jackson:
    serialization:
      write-dates-as-timestamps: true

Не пропускаете ли вы префикс spring?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...