Rest Spring Java配置消息转换器优先级

Rest Spring Java配置消息转换器优先级,rest,spring-mvc,jackson,spring-java-config,Rest,Spring Mvc,Jackson,Spring Java Config,我使用SpringJavaConfig定义了两个这样的转换器。我总是得到一个XML响应,除非我在HTTP头中指定了'Accept=applicationon/json'。有没有办法将默认转换器设置为JSON而不是XML转换器 @EnableWebMvc @Configuration @ComponentScan(basePackages = {"foo.bar"}) public class WebMvcConfig extends WebMvcConfigurerAdapter { ...

我使用SpringJavaConfig定义了两个这样的转换器。我总是得到一个XML响应,除非我在HTTP头中指定了'Accept=applicationon/json'。有没有办法将默认转换器设置为JSON而不是XML转换器

@EnableWebMvc
@Configuration
@ComponentScan(basePackages = {"foo.bar"})
public class WebMvcConfig extends WebMvcConfigurerAdapter {
...

@Bean
public MappingJackson2HttpMessageConverter jsonConverter() {
    MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
    ObjectMapper objectMapper = new ObjectMapper();
    jsonConverter.setObjectMapper(objectMapper);
    return jsonConverter;
}

@Bean
public MappingJackson2XmlHttpMessageConverter xmlConverter() {
    MappingJackson2XmlHttpMessageConverter xmlConverter = new MappingJackson2XmlHttpMessageConverter();
    return xmlConverter;
}

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(jsonConverter());
    converters.add(xmlConverter());
    super.configureMessageConverters(converters);
}
@EnableWebMvc
@配置
@ComponentScan(basePackages={“foo.bar”})
公共类WebMvcConfig扩展了WebMVCConfigureAdapter{
...
@豆子
公共映射Jackson2HttpMessageConverter jsonConverter(){
MappingJackson2HttpMessageConverter jsonConverter=新的MappingJackson2HttpMessageConverter();
ObjectMapper ObjectMapper=新的ObjectMapper();
setObjectMapper(objectMapper);
返回jsonConverter;
}
@豆子
公共映射jackson2xmlhttpmessageconverter xmlConverter(){
MappingJackson2XmlHttpMessageConverter xmlConverter=新的MappingJackson2XmlHttpMessageConverter();
返回式转换器;
}
@凌驾

public void configureMessageConverters(List尝试以下配置,它设置默认内容协商策略(基于文章):

另一个选项是提供指定内容格式的其他方式,如果
Accept
头不可行,则可以指定扩展名
/myuri/sample.json
,该扩展名将作为json返回

@RequestMapping(value = "/product")
public
@ResponseBody
BSONObject getProducts(@RequestParam String ids,
                       @RequestParam(required = false) String types) {


    List<BSONObject> products = commonDataService.getData(ids, types);

    return products;
}
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
  @Override
  public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    configurer.defaultContentType(MediaType.APPLICATION_JSON);
  }
}