das*_*ing 4 java spring jackson jackson-modules spring-boot
我正在使用SpringBoot 1.5.9,Jackson 2.8和Spring Framework 4.3.13。
我正在尝试注册和使用AfterburnerModel。
根据Spring Boot文档,要配置ObjectMapper,您可以自己定义bean并用@Bean和@Primary对其进行注释。在bean中,您可以注册一个模块。或者,您可以添加类型为Jackson2ObjectMapperBuilder的bean,在其中可以通过添加模块来自定义ObjectMapper。
我尝试了两种方式,并且在序列化期间,杰克逊模块加力燃烧器中没有断点。我的自定义设置已被阅读,但似乎被忽略了。
默认情况下,Spring MVC MappingJackson2HttpMessageConverter将ObjectMapper使用默认选项创建它自己的Jackson2ObjectMapperBuilder。根据Spring Boot docs 76.3自定义Jackson ObjectMapper章节:
任何类型为com.fasterxml.jackson.databind.Module的bean都会自动注册到自动配置的Jackson2ObjectMapperBuilder中,并应用于它创建的任何ObjectMapper实例。当您向应用程序中添加新功能时,这提供了一种用于贡献自定义模块的全局机制。
因此将模块注册为Bean应该足够了:
@Bean
public AfterburnerModule afterburnerModule() {
return new AfterburnerModule();
}
Run Code Online (Sandbox Code Playgroud)
可以使用@Configuration类来自定义更详细的设置MappingJackson2HttpMessageConverter:
@Configuration
public class MyMvcConf extends WebMvcConfigurationSupport {
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(myConverter());
addDefaultHttpMessageConverters(converters);
}
@Bean
public MappingJackson2HttpMessageConverter myConverter() {
return new MappingJackson2HttpMessageConverter(myObjectMapper())
}
@Bean
public ObjectMapper myObjectMapper() {
return new ObjectMapper().registerModule(new AfterburnerModule());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3435 次 |
| 最近记录: |