首页 > 解决方案 > 如何在 SpringMvc 中为指定的控制器配置 HttpMessageConverter

问题描述

众所周知,我们可以通过 WebMvcConfigurer 中的 configureMessageConverters 方法来配置全局 HttpMessageConverter。请参阅https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-config-message-converters 但我想为指定的控制器配置一个 HttpMessageConverter 以覆盖全局配置实现不同于全局的功能。我应该如何配置它?有朋友可以指点一下吗?

标签: springspring-bootspring-mvc

解决方案


您可以将以下代码放入任何配置类中。你必须在你需要的那个类中自动装配这个特定的对象映射器。即使你可以创建多个对象映射器来服务于不同的目的。

    @Bean
    @Qualifier("customForController")
    public ObjectMapper getObjectMapper() {
          ObjectMapper mapper=new ObjectMapper();
          return mapper;
      }

    @Bean
    @Qualifier("customMessageConverter")
    public MappingJackson2HttpMessageConverter converter() {
         MappingJackson2HttpMessageConverter httConverter = new MappingJackson2HttpMessageConverter();
         httConverter.setObjectMapper(getObjectMapper());
         //others configuration goes here 
        return httConverter;

    }


推荐阅读