【问题标题】:How to configure HttpMessageConverter for specified controller in SpringMvc如何在 SpringMvc 中为指定的控制器配置 HttpMessageConverter
【发布时间】:2020-06-05 15:19:59
【问题描述】:

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

【问题讨论】:

标签: spring spring-boot spring-mvc


【解决方案1】:

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

    @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;

    }

【讨论】:

  • 对不起,可能我没有表达清楚我的意思。我想要一种透明转换的方法,而不是显式使用它。像 WebMvcConfigurer 的 addFormatters 方法可以全局配置格式化程序,但我也可以使用 @InitBinder 方法为指定的控制器配置它。
猜你喜欢
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
相关资源
最近更新 更多