springboot:调用接口返回的数据乱码解决

从git拉下来项目后,运行服务,启动正常,但是使用swagger和postman调用服务接口出现乱码问题

每一个接口返回的数据是乱码,但是控制台打印的日志都是正常的,后续发现数据的返回类型不是常见的application/json,而是application/x-jackson-smile,所以要通过改变数据类型解决问题

controller类已经使用RestController注解了,但是contentType依旧不是json

通过在接口处声明contentType,可以解决接口返回乱码的问题,但是一个个接口声明太麻烦了

百度了很久终于得到了解决方案

通过增加全局配置,实现springboot的web配置类,对默认的contentType进行配置

按照以下,所有的接口可以选传一个参数 mediaType,如果值为xml,则返回xml格式数据;如果值为json,则返回json格式数据当不传时,默认返回json格式数据

plaintext 复制代码
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
        configurer.favorParameter(true)
                .defaultContentType(MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML)
                .parameterName("mediaType")

                .mediaType("json",MediaType.APPLICATION_JSON)
                .mediaType("xml",MediaType.APPLICATION_XML);


    }
}