相关疑难解决方法(0)

如何在Spring Boot 1.4中自定义Jackson

我一直无法找到如何在spring boot 1.4中使用Jackson2ObjectMapperBuilderCustomizer.java来自定义Jackson的功能的示例.

在启动1.4中定制杰克逊的doco - http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#howto-customize-the-jackson-

我的配置工作,虽然我不确定这是否是使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

为了提供一些上下文,这个类位于我自己的REST服务的spring starter项目中,它只是自动配置一些东西,比如ControllerAdvice和一些简单的功能,如上所述.

所以我的目标是扩展Jackson配置而不是覆盖引导或其他包提供的任何配置.

java spring jackson spring-boot

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

jackson ×1

java ×1

spring ×1

spring-boot ×1