Добавление @EnableWebMvc в Springboot изменяет вывод даты из строки в массив - PullRequest
0 голосов
/ 28 февраля 2019

Я создаю один Springboot (2.0.6.RELEASE) и помещаю в мой application.yml конфигурацию:

jackson:
    date-format: dd/MM/yyyy

, поэтому, когда мой пользователь вызывает мой API, каждая дата возвращается так:

"vencimento": "01/07/2017" 

Итак, теперь я вставил CORS в свой проект

@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**");
    }
}

, но теперь все мои поданные даты возвращаются так:

"vencimento": [
            2017,
            1,
            7
        ],

кто-нибудь знает почему?и как это исправить?ТКС

1 Ответ

0 голосов
/ 01 марта 2019

С добавлением @EnableWebMvc вы говорите Spring, что хотите получить полный контроль над конфигурацией Spring MVC .Таким образом, вам нужно настроить объект сопоставления Джексона вручную.

Главное добавить следующие настройки:

objectMapper.registerModule(new JavaTimeModule());
objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

По умолчанию SerializationFeature.WRITE_DATES_AS_TIMESTAMPS включено и дает массив компонентов даты и времени, аналогичных вашим (например, [2014,3,30,12,30,23,123456789] вместо "2014-03-30T12:30:23.123456789").

Пример настройки объекта сопоставления и регистрации его как компонента в классе @Configuration (если вы не знакомы с тем, как это сделать):

    @Bean
    public ObjectMapper jsonObjectMapper() {
        final ObjectMapper jsonMapper = new ObjectMapper();
        jsonMapper.registerModule(new JavaTimeModule());
        jsonMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);

        //some other configuration like:
        jsonMapper.registerModule(new Jdk8Module());
        jsonMapper.disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS);

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