从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);
}
}