问题
未使用WebMvcConfigurationSupport拦截时返回的数据都是JSON格式,使用WebMvcConfigurationSupport做拦截后数据的返回变为了XML的格式。
原因
在Spring框架中,WebMvcConfigurationSupport 是一个类,它可以用于自定义Spring MVC的配置。如果您在应用程序中使用了WebMvcConfigurationSupport,而且之前返回的JSON数据现在变成了XML,那么很可能是由于您在配置中进行了一些变更,导致了默认的消息转换器发生了改变。
默认情况下,Spring使用MappingJackson2HttpMessageConverter作为消息转换器,它可以将Java对象转换为JSON格式的数据。如果您在继承WebMvcConfigurationSupport类时没有明确指定消息转换器,可能会导致Spring使用其他默认的消息转换器,比如Jaxb2RootElementHttpMessageConverter,这个转换器可以将Java对象转换为XML格式的数据。
解决办法
@Configuration
public class CustomWebMvcConfig extends WebMvcConfigurationSupport {
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new MappingJackson2HttpMessageConverter());
super.configureMessageConverters(converters);
}
}