我需要在我的spring-boot 1.5.12服务以及以下对classpath的依赖项之一中支持XML和JSON
我创建了 MappingJackson2XmlHttpMessageConverter Bean,以支持Jackson自身的XML(与JSON保持一致)
@Bean
public MappingJackson2XmlHttpMessageConverter xmlHttpConverter(ObjectMapper xmlMapper) {
MappingJackson2XmlHttpMessageConverter xmlConverter = new MappingJackson2XmlHttpMessageConverter();
xmlConverter.setObjectMapper(xmlMapper);
return xmlConverter;
}
@Bean
public ObjectMapper xmlMapper() {
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
xmlMapper.setSerializationInclusion(Include.NON_NULL);
return xmlMapper;
}
但是自从我进行了这些更改之后,XML在所有方面都比JSON优先(RestTemplate调用和服务 / health 和 / info 检查)
我已经在RestTemplate调用中添加了Content-Type标头,但是我们的CI-CD Infra调用了执行器端点,现在受到影响了,我想对转换器进行排序/排序,使其更改很少,或者将JSON用作默认的Content-Type服务。
我知道/health.json和/info.json可以工作,但是我不能要求Infra团队更改此服务的逻辑,
我看到了官方文档here,我喜欢这种方法,但是我想知道如何通过注入而不是通过继承WebMvcConfigureAdapter来获取所有现有的转换器。
请提出其他解决问题的更好方法。