Wie man Jackson in Spring Boot 1.4 anpasst

Ich konnte keine Beispiele für die Verwendung von @ finde Jackson2ObjectMapperBuilderCustomizer.java in Spring Boot 1.4, um die Funktionen von Jackson anzupassen.

Das Dokument zum Anpassen von Jackson in Boot 1.4 -http: //docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-customize-the-jackson

Meine Konfiguration funktioniert, obwohl ich nicht sicher bin, ob dies der richtige Weg ist, um die Objektzuordnung mithilfe von @ anzupasse Jackson2ObjectMapperBuilderCustomizer.java

@Configuration
public class JacksonAutoConfiguration {

    @Autowired
    private Environment env;

    @Bean
    public Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder(
        List<Jackson2ObjectMapperBuilderCustomizer> customizers) {
        Jackson2ObjectMapperBuilder builder = configureObjectMapper();
        customize(builder, customizers);
        return builder;
    }

    private void customize(Jackson2ObjectMapperBuilder builder,
                           List<Jackson2ObjectMapperBuilderCustomizer> customizers) {
        for (Jackson2ObjectMapperBuilderCustomizer customizer : customizers) {
            customizer.customize(builder);
        }
    }

    private Jackson2ObjectMapperBuilder configureObjectMapper() {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        List<String> activeProfiles = asList(env.getActiveProfiles());
        if (activeProfiles.contains(SPRING_PROFILE_DEVELOPMENT)) {
            builder.featuresToEnable(SerializationFeature.INDENT_OUTPUT);
        }
        return builder;
    }
}

Um einen gewissen Kontext bereitzustellen, befindet sich diese Klasse in meinem eigenen Spring-Starter-Projekt für REST-Services, in dem nur einige Dinge wie ControllerAdvice und einige triviale Funktionen wie die oben genannten automatisch konfiguriert werden.

So ist mein Ziel, die Jackson-Konfiguration zu erweitern, anstatt jede Konfiguration zu überschreiben, die durch Boot- oder andere Pakete bereitgestellt wird.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage