在这个spring boot2 RestTemplate超时示例中,学习使用示例在Spring RestTemplate中配置连接超时和读取超时。

1. RestTemplate默认超时

默认情况下,RestTemplate使用SimpleClientHttpRequestFactory取决于默认配置HttpURLConnection。查看类源代码,您将找到它。

// RestTemplate默认超时
private int connectTimeout = -1;
private int readTimeout = -1;

默认情况下,resttemplate使用安装在计算机上的JDK中的timeout属性,该属性始终infinite不被覆盖。要覆盖默认的JVM超时,我们可以在JVM启动期间传递这些属性。

// 覆盖JVM中的默认超时
-Dsun.net.client.defaultConnectTimeout=<TimeoutInMiliSec>
-Dsun.net.client.defaultReadTimeout=<TimeoutInMiliSec>

2. RestTemplate与SimpleClientHttpRequestFactory超时

要以编程方式覆盖超时属性,我们可以如下自定义SimpleClientHttpRequestFactory类。

//Create resttemplate
RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());//Override timeouts in request factory
private SimpleClientHttpRequestFactory getClientHttpRequestFactory()
{SimpleClientHttpRequestFactory clientHttpRequestFactory= new SimpleClientHttpRequestFactory();//Connect timeoutclientHttpRequestFactory.setConnectTimeout(10_000);//Read timeoutclientHttpRequestFactory.setReadTimeout(10_000);return clientHttpRequestFactory;
}

3.带有HttpComponentsClientHttpRequestFactory的RestTemplate超时

SimpleClientHttpRequestFactory可以帮助设置超时,但功能非常有限,在实时应用程序中可能不够用。在生产代码,我们可能要使用HttpComponentsClientHttpRequestFactory支持HTTP客户端库resttemplate一起。

HTTPClient提供了其他有用的功能,例如连接池,空闲连接管理等。

:Spring RestTemplate + HttpClient配置示例

//Create resttemplate
RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());//Override timeouts in request factory
private SimpleClientHttpRequestFactory getClientHttpRequestFactory()
{HttpComponentsClientHttpRequestFactory clientHttpRequestFactory= new HttpComponentsClientHttpRequestFactory();//Connect timeoutclientHttpRequestFactory.setConnectTimeout(10_000);//Read timeoutclientHttpRequestFactory.setReadTimeout(10_000);return clientHttpRequestFactory;
}

4。结论

与远程系统交互时,必须具有超时属性。它们引起的任何性能问题都可能妨碍用户体验,并可能导致整个应用程序崩溃。

在生产代码中,始终选择使用HttpClient库。您可以考虑SimpleClientHttpRequestFactory仅在编写JUnit测试时使用。

请问您有关Spring Boot RestTemplate连接超时示例的问题。

学习愉快!

参考

https://howtodoinjava.com/spring-boot2/resttemplate/resttemplate-timeout-example/

https://segmentfault.com/a/1190000008351806

易筋SpringBoot 2.1 | 第三十六篇:Spring Boot RestTemplate超时配置示例相关推荐

  1. 《深入理解 Spring Cloud 与微服务构建》第十六章 Spring Boot Security 详解

    <深入理解 Spring Cloud 与微服务构建>第十六章 Spring Boot Security 详解 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...

  2. Spring Boot教程(十六):Spring Boot集成shiro

    Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理.借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到 ...

  3. SpringBoot2.x系列教程(六十六)Spring Boot快速集成RocketMQ实战教程

    前言 RocketMQ是目前主流的消息中间件之一,并且自身就支持分布式功能.最初由阿里巴巴团队开发,并且经历过双十一等海量消息场景的考验,后捐赠给Apache开源基金会,这也是为什么我们经常听说Roc ...

  4. SpringBoot第十六篇:用restTemplate消费服务

    这篇文章主要介绍怎么用消费一个 Restful的web服务.我将用restTemplate去消费一个服务: http://gturnquist-quoters.cfapps.io/api/random ...

  5. 第三十六篇:WinUSB调试实例

    有人问,前面的博文,分别列出了USB xHCI, USB3 HUB, UCX01000的符号有什么用? 答案是,虽然我们不能看到MICROSOFT 的源代码,但通过这些符号,可以帮助我们调试USB子系 ...

  6. “约见”面试官系列之常见面试题第三十六篇之CSS常见兼容性问题及解决方案(建议收藏)

    CSS常见兼容性问题及解决方案: 1. 上下margin重合问题: 问题描述:相邻的margin-left和margin-right是不会重合的,但是相邻的块级元素margin-top 和margin ...

  7. 三十六、Java集合中的HashMap

    @Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  8. 教妹学Java(三十六):Java 多态的好处

    你好呀,我是沉默王二,(目前是)CSDN 周排名前十的博客专家.这是<教妹学 Java>专栏的第三十六篇,今天我们来谈谈 Java 中的多态--多态有什么好处? 本专栏中的代码已收录到 G ...

  9. spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

    spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...

  10. Python编程基础:第三十六节 模块Modules

    第三十六节 模块Modules 前言 实践 前言 我们目前所有的代码都写在一个文档里面.如果你的项目比较大,那么把所有功能写在一个文件里就非常不便于后期维护.为了提高我们代码的可读性,降低后期维护的成 ...

最新文章

  1. 中国AI专利申请量超美国,百度居国内首位
  2. C#的多线程机制探索4
  3. 数据库VIEW(视图)
  4. 关系管理系统:CustomerDaoimpl中获取总记录数getTotalrecord()
  5. 浅析“字典--NSDirctionary”理论
  6. 智慧“昆明”在路上 未来充满精彩
  7. 推荐几个Android开发非常有用的工具(for android studio)
  8. mail函数 开启php,PHP mail函数使用详解
  9. Unity3D脚本中文系列教程(十四)
  10. 【九天教您南方cass 9.1】 14 坐标数据的纠正
  11. 登陆界面万能密码绕过
  12. 文件 - 介绍 含PEM文件
  13. 陈述句c语言,幼儿语言发展中最早产生的句型是()。A.陈述句 B.疑问句C.祈使句 D.感叹句...
  14. macOS 控件教程(1)
  15. 第7章概率和样本:样本均值的分布
  16. Spring框架基础(中)
  17. 高通msm8996启动流程
  18. angular RxJs
  19. 关于在袁教授blog中的”呛袁教授“的争论
  20. 2021-5-21-博弈论--金刚狼与小狗灰

热门文章

  1. python中能用π吗_python里π
  2. python所有第三方库_自动更新Python所有第三方库
  3. 语言模拟蒲丰问题_播音主持专业艺考模拟主持八大禁忌!
  4. eclipse生成ant build.xml打war包
  5. jvm学习--类加载器
  6. [ IOS ] iOS-控制器View的创建和生命周期
  7. 什么是CGI 什么是 FastCGI 什么是 php-fpm
  8. 耶鲁大学教授:给研究生的11条军规
  9. Linux使用信号量监控程序异常退出
  10. Qt笔记——MOC(莫克)