RestTemplate的无参构造中默认会初始化很多messageConverters,用于请求/响应中的消息转换
/** * Create a new instance of the {@link RestTemplate} using default settings. * Default {@link HttpMessageConverter}s are initialized. * 使用默认配置创建一个RestTemplate实例 * 默认的HttpMessageConverter集合被初始化 */ public RestTemplate() { this.messageConverters.add(new ByteArrayHttpMessageConverter()); this.messageConverters.add(new StringHttpMessageConverter()); this.messageConverters.add(new ResourceHttpMessageConverter()); this.messageConverters.add(new SourceHttpMessageConverter<Source>()); this.messageConverters.add(new AllEncompassingFormHttpMessageConverter()); if (romePresent) { this.messageConverters.add(new AtomFeedHttpMessageConverter()); this.messageConverters.add(new RssChannelHttpMessageConverter()); } if (jackson2XmlPresent) { this.messageConverters.add(new MappingJackson2XmlHttpMessageConverter()); } else if (jaxb2Present) { this.messageConverters.add(new Jaxb2RootElementHttpMessageConverter()); } /** * 如果类路径下包含com.fasterxml.jackson.databind.ObjectMapper 和 com.fasterxml.jackson.core.JsonGenerator * 使用jackson做http请求、响应的json转换 */ if (jackson2Present) { this.messageConverters.add(new MappingJackson2HttpMessageConverter()); } else if (gsonPresent) { //类路径下包含 com.google.gson.Gson this.messageConverters.add(new GsonHttpMessageConverter()); } }springboot项目默认使用jackson做json转换
使用fastjson做json转换引入fastjson依赖
排除jackson的HttpMessageConverter转换器
添加fastjson的转换器
排除jackson的HttpMessageConverter转换器有两种方式:
(1)类路径下去掉jackson的支持