Skip to content

SpringMVC返回XML的处理

Zeyes Lee edited this page Nov 29, 2024 · 1 revision

接入视频号/微信小店依赖后,Spring MVC返回XML的处理

如果你使用开放平台接入微信小店,并且回调选择了XML的消息格式,那么需要引入jackson-dataformat-xml这个依赖,如果在Spring MVC层又引入了本项目的依赖,那么SpringMVC的默认返回会受到影响。

以下是一些关于这个的一些讨论:

最佳的解决方案就是,服务层和表现层分离,不要直接在表现层引入WxJava相关的包,通过封装VO的方式解耦

如果非要一锅端,也有解决方法,问题不大,下面代码可以直接抄。

/**
 * 解决引入jackson-dataformat-xml导致的xml转换问题
 *
 * @author <a href="https://github.com/lixize">Zeyes</a>
 */
@Configuration
public class WebInterceptorAdapter implements WebMvcConfigurer {

    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> aConverters) {
        aConverters.removeIf (aConverter -> (aConverter instanceof MappingJackson2XmlHttpMessageConverter));
    }

    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.defaultContentType(MediaType.APPLICATION_JSON);
    }
}
Clone this wiki locally