最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何配置SpringTemplate的HTTP消息转换器及其默认支持类型?
时间:2026-07-24 09:10:24 编辑:袖梨 来源:一聚教程网
spring template配置示例
@Bean
public RestTemplate restTemplate() {
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setConnectTimeout(6000);// 设置建立连接超时时间 毫秒
requestFactory.setReadTimeout(6000);// 设置读取数据超时时间 毫秒
RestTemplate restTemplate = new RestTemplate(requestFactory);
// jackson配置
ObjectMapper objectMapper = new ObjectMapper();
// 配置如果被序列化的对象没有可访问的属性 不报错,返回一个空的bean,即{}
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// 创建json消息转换器
MappingJackson2HttpMessageConverter jacksonConverter = new MappingJackson2HttpMessageConverter(objectMapper);
List<MediaType> mediaTypes = new ArrayList<>(jacksonConverter.getSupportedMediaTypes());
// 为json消息转换器新增直接text_plain类型 避免遇到响应体是json,而响应头是text/plain类型无法找到适合的解析
mediaTypes.add(MediaType.TEXT_PLAIN);
jacksonConverter.setSupportedMediaTypes(mediaTypes);
List<HttpMessageConverter<?>> messageConverters = Arrays.asList(
new ByteArrayHttpMessageConverter(),
new StringHttpMessageConverter(Charset.forName("utf-8")),
new ResourceHttpMessageConverter(),
new SourceHttpMessageConverter<>(),
new FormHttpMessageConverter(),
jacksonConverter
);
restTemplate.setMessageConverters(messageConverters);
return restTemplate;
}
各种解析器默认支持的类型表
| 类名 | 支持的JavaType | 支持的MediaType |
|---|---|---|
| ByteArrayHttpMessageConverter | byte[] | application/octet-stream, */* |
| StringHttpMessageConverter | String | text/plain, */* |
| ResourceHttpMessageConverter | Resource | */* |
| SourceHttpMessageConverter | Source | application/xml, text/xml, application/*+xml |
| AllEncompassingFormHttpMessageConverter | Map<K, List<?>> | application/x-www-form-urlencoded, multipart/form-data |
| MappingJackson2HttpMessageConverter | Object | application/json, application/*+json |
| Jaxb2RootElementHttpMessageConverter | Object | application/xml, text/xml, application/*+xml |
| JavaSerializationConverter | Serializable | x-java-serialization;charset=UTF-8 |
| FastJsonHttpMessageConverter | Object | */* |
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

- springboot 如何通过SpringTemplateEngine渲染html
- SpringBoot中RedisTemplate与StringRedisTemplate常用Redis API速查
- Spring使用JdbcTemplate轻量完成数据库增删改查的实战指南
- SpringBoot集成Redis之RedisTemplate实践
- SpringBoot整合JdbcTemplate快速开发数据访问层
- Spring Boot 使用 WebServiceTemplate 调用 WebService的完整步骤
相关文章
- PHP应用代码复杂度检测使用方法 09-23
- php代码审计之ThinkPHP5的文件包含漏洞详解 09-23
- PHP利用redis位图实现简单的签到功能 09-23
- PHP使用DOM解析器删除指定a链接的方法实例分析 <font color=red>原创</font> 09-23
- PHP高并发高负载下的3种实战场景解决方法示例 09-22
- php解决注册并发问题并提高QPS 09-22