Java 如何设置Jackson';带弹簧靴的constructorDetector?
我想配置Jackson,使其能够使用构造函数自动反序列化,而不需要注释。使用SpringBoot,这对于大多数构造函数来说是开箱即用的,但对于单参数构造函数则不是 Jackson 2.12还发布了一个配置选项,用于为单参数构造函数启用反序列化:Java 如何设置Jackson';带弹簧靴的constructorDetector?,java,spring,spring-boot,jackson,Java,Spring,Spring Boot,Jackson,我想配置Jackson,使其能够使用构造函数自动反序列化,而不需要注释。使用SpringBoot,这对于大多数构造函数来说是开箱即用的,但对于单参数构造函数则不是 Jackson 2.12还发布了一个配置选项,用于为单参数构造函数启用反序列化: ObjectMapper mapper = JsonMapper.builder() .constructorDetector(ConstructorDetector.USE_PROPERTIES_BASED) .build() 但是,
ObjectMapper mapper = JsonMapper.builder()
.constructorDetector(ConstructorDetector.USE_PROPERTIES_BASED)
.build()
但是,这并不使用通常的功能启用/禁用界面。如何使用Spring Boot进行设置
定义
Jackson2ObjectMapperBuilder
或ObjectMapper
的bean将阻止对这些bean应用任何自动配置
相反,您可以定义类型为Jackson2ObjectMapperBuilderCustomizer
的bean,它是一个lambda,允许您在Spring引导自动配置的Jackson2ObjectMapperBuilder
上调用其他方法
此外,Jackson2ObjectMapperBuilder
具有方法postconfiguer
,这是另一个回调,允许您在自动配置的ObjectMapper
上调用方法
把这些放在一起:
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return builder -> builder.postConfigurer(mapper ->
mapper.setConstructorDetector(USE_PROPERTIES_BASED)
);
}