繁体   English   中英

如何在Spring Boot中注册并使用jackson AfterburnerModule?

[英]How can I register and use the jackson AfterburnerModule in 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。

我已经尝试了两种方式,并且在序列化期间,我在jackson-module-afterburner中没有任何断点点火。 我正在阅读我的自定义,但似乎被忽略了。

默认情况下,Spring MVC MappingJackson2HttpMessageConverter将使用Jackson2ObjectMapperBuilder创建自己的ObjectMapper ,默认选项。 根据Spring Boot文档76.3自定义Jackson ObjectMapper章节:

任何类型为com.fasterxml.jackson.databind.Module的bean都会自动注册到自动配置的Jackson2ObjectMapperBuilder,并应用于它创建的任何ObjectMapper实例。 这为您在应用程序中添加新功能时提供了一种提供自定义模块的全局机制。

所以将模块注册为bean就足够了:

@Bean
public AfterburnerModule afterburnerModule() {
  return new AfterburnerModule();
}

使用@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());
  }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM