How to configure MappingJacksonHttpMessageConverter while using spring annotation-based configuration?

Use the WebMvcConfigurer.configureMessageConverters() method:

Configure the HttpMessageConverters to use […] If no message converters are added to the list, default converters are added instead.

With @Configuration you have:

@Configuration
class MvcConf extends WebMvcConfigurationSupport {
    protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(converter());
        addDefaultHttpMessageConverters(converters);
    }

    @Bean
    MappingJacksonHttpMessageConverter converter() {
        MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter()
        //do your customizations here...
        return converter;
    }
}

Call to addDefaultHttpMessageConverters() is required because the defaults are not applied when using custom converters.

IMPORTANT NOTE You must remove @EnableWebMvc for your converters to be configured if you extend WebMvcConfigurationSupport.

Leave a Comment