在 Springboot 中为 @RestController 配置自定义 ObjectMapper

Configure custom ObjectMapper for @RestController within Springboot

我在 springboot 应用程序中配置了两个 ObjectMappers。我在配置 class 中声明这些,如下所示:

@Configuration
public class Config {

  @Bean
  @Primary
  public ObjectMapper getPrimary() {
    return new ObjectMapper();
  }


  @Bean
  public ObjectMapper getSecondary() {
    return new ObjectMapper();
  }

}

@Primary ObjectMapper 可以正常工作。我不知道如何让 @RestController 使用辅助 ObjectMapper。感谢任何帮助。

FWIW,我无法让它隐式地与@RestController 一起工作,但我最终将辅助 ObjectMapper 注入到其余控制器中,然后直接使用映射器解析输入。

您需要使用限定符:

@Configuration
public class Config {

  @Bean("myPrimaryOjectMapper")
  @Primary
  public ObjectMapper getPrimary() {
    return new ObjectMapper();
  }


  @Bean("mySecondaryOjectMapper")
  public ObjectMapper getSecondary() {
    return new ObjectMapper();
  }

}

然后注射时:


@Autowired
@Qualifier("mySecondaryOjectMapper")
private ObjectMapper objectMapper;

您可以在此处阅读更多示例:https://www.baeldung.com/spring-qualifier-annotation#qualifierVsPrimary