当前位置: 首页 > news >正文

html网站地图织梦移动网站模板免费下载

html网站地图,织梦移动网站模板免费下载,外贸建站用什么平台好,企拓客软件多少钱在 Spring 5 之前,如果我们想要调用其他系统提供的 HTTP 服务,通常可以使用 Spring 提供的 RestTemplate 来访问,不过由于 RestTemplate 是 Spring 3 中引入的同步阻塞式 HTTP 客户端,因此存在一定性能瓶颈。根据 Spring 官方文档…

在 Spring 5 之前,如果我们想要调用其他系统提供的 HTTP 服务,通常可以使用 Spring 提供的 RestTemplate 来访问,不过由于 RestTemplate 是 Spring 3 中引入的同步阻塞式 HTTP 客户端,因此存在一定性能瓶颈。根据 Spring 官方文档介绍,在将来的版本中它可能会被弃用。

​ 作为替代,Spring 官方已在 Spring 5 中引入了 WebClient 作为非阻塞式 Reactive HTTP 客户端。

一 基本介绍

1 什么是WebClient

  • 从 Spring 5 开始,Spring 中全面引入了 Reactive 响应式编程。而 WebClient 则是 Spring WebFlux 模块提供的一个非阻塞的基于响应式编程的进行 Http 请求的客户端工具。
  • 由于 WebClient 的请求模式属于异步非阻塞,能够以少量固定的线程处理高并发的 HTTP 请求。因此,从 Spring 5 开始,HTTP 服务之间的通信我们就可以考虑使用 WebClient 来取代之前的 RestTemplate。

2 WebClient 的优势

(1)与 RestTemplate 相比,WebClient 有如下优势:

  • 非阻塞,Reactive 的,并支持更高的并发性和更少的硬件资源。
  • 提供利用 Java 8 lambdas 的函数 API。
  • 支持同步和异步方案。
  • 支持从服务器向上或向下流式传输。

(2)RestTemplate 不适合在非阻塞应用程序中使用,因此 Spring WebFlux 应用程序应始终使用 WebClient。在大多数高并发场景中,WebClient 也应该是 Spring MVC 中的首选,并且用于编写一系列远程,相互依赖的调用。

3 使用配置

在pom文件里,导入一下配置即可

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

二 创建WebClient实例

1 使用 create() 创建

WebClient.create(): 这是 WebClient 的静态工厂方法之一。调用 WebClient.create() 将直接创建一个默认配置的 WebClient 实例。这个实例可以立即使用,而无需进行进一步的配置。它使用默认的 WebFlux 配置和默认的 WebClientOptions。

WebClient webClient = WebClient.create();
public Order queryOrderById(Long orderId) {// 1. 查询订单Order order = orderMapper.findById(orderId);// 2. 构造远程调用的 URLString url = "http://localhost:8081/user/" + order.getUserId();// 3. 发起远程调用,使用 WebClient 替代 RestTemplateUser user = webClient.get().uri(url).retrieve().bodyToMono(User.class).block(); // 使用 block() 方法等待结果返回,或者使用 reactive 链式编程来处理响应// 4. 封装 user 到 orderorder.setUser(user);// 5. 返回 orderreturn order;
}

2 使用builder 创建(推荐)

WebClient.builder(): 这是 WebClient 的另一个静态工厂方法。调用 WebClient.builder() 将返回一个 WebClient.Builder 对象,您可以在该对象上进行更多的配置。使用 WebClient.Builder,您可以设置各种选项,如超时时间、连接池大小、拦截器、错误处理等。

WebClient webClient = WebClient.builder().baseUrl("https://api.example.com").defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE).build();

三 总结

create() 方法提供了一种简单快速创建默认配置 WebClient 实例的方式,而 builder() 方法则提供了更灵活的配置选项

http://www.yayakq.cn/news/79254/

相关文章:

  • 建设部网站资质标准小制作小发明手工五年级
  • 做推广适合哪些网站吗郑州做网站建设公司排名
  • 网站建设及推广费用怎么入账wordpress企業主题
  • 购物网站介绍app开发的网站
  • 网站做apk制作工具做企业网站可以没有后台吗
  • 网站建设结项报告哪个公司网站设计最好
  • 网站怎么做直播黄冈商城网站建设哪家好
  • 网站建设中 敬请期待...企业注册信息查询单怎么打印
  • 品牌网站设计联系自己画图设计房间的软件
  • 医疗网站建设基本流程wordpress充值卡生成
  • 湖南张家界建设厅网站网页微信登录不了
  • 泉州网站建设技术外包永久免费素材网ppt模板
  • seo常用工具网站网站设计部的优化
  • 帝国cms做网站怎样维护网站系统重要性
  • 公司的网站的设计网站前台后台
  • 网站开发与维护课程设计公司官方网站建设
  • 安通建设有限公司网站手机平面绘图软件
  • 网站建设与运营总结iis网站目录在哪
  • 株洲公司做网站建站之星如何建网站
  • wordpress单页面网站怎么做搭建wordpress
  • 休闲食品网站建设目的为什么要做外贸网站
  • 哈尔滨高端模板建站西安便宜做网站的
  • wordpress 8.0seo网络推广技巧
  • 宝和网站建设做网站在线
  • 如何做后台网站增删改济南想做网站
  • 中国室内设计联盟网站seo关键词排名教程
  • 怎样做好网站建设推广引流话术
  • 怎么制作弹幕网站百度免费安装
  • 商城网站开发企业免费手机网站系统
  • 怎样通过手机建网站网站建设方案书网络部署方案