spring.jackson.default-свойство-включение игнорируется - PullRequest
0 голосов
/ 09 июля 2020

В моем проекте Spring Boot / Kotlin я пытаюсь заставить преобразователь JSON игнорировать нулевые значения в моих ответах контроллера отдыха.

Я попытался установить следующее в своем приложении. yml:

  spring:
    jackson:
      default-property-inclusion: non_null

Я также пробовал предоставить @Bean типа Jackson2ObjectMapperBuilder и @ObjectMapper, сконфигурированный с .serializationInclusion(JsonInclude.Include.NON_NULL), но он все еще сериализует все нулевые свойства.

Использование Spring Boot 2.3.0, Kotlin 1.3.72, AdoptOpenJDK 13

1 Ответ

0 голосов
/ 10 июля 2020

Что ж, я нашел проблему, создав новый проект с нуля и добавив части из текущего, пока не получил отклоняющееся поведение.

Оказывается, проблема была в классе, который использовался для добавления сопоставлений CORS:

@EnableWebMVC
@Configuration
class WebConfiguration : WebMvcConfigurer {
    override fun addCorsMappings(registry: CorsRegistry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
    }
}

Кажется, я добавил @EnableWebMVC, как показано в примере, но класс не находится в той же части иерархии классов, что и классы @RESTController, поэтому похоже, что объект конфигурация картографа не применялась. Я недостаточно знаю о внутренней проводке Spring / Boot, чтобы объяснить, почему.

После того, как я удалил @EnableWebMVC и разрешил Spring Boot добавить его в класс приложения через автоконфигурацию, все заработало, как ожидалось. ..

...