Rest Spring Java配置消息转换器优先级
我使用SpringJavaConfig定义了两个这样的转换器。我总是得到一个XML响应,除非我在HTTP头中指定了'Accept=applicationon/json'。有没有办法将默认转换器设置为JSON而不是XML转换器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 { ...
@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);
}
}