Spring5怎么配置WebClient


本篇内容主要讲解“Spring5怎么配置WebClient”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring5怎么配置WebClient”吧!
非阻塞 I/O。
反应流背压(消费消费负载过高时主动反馈生产者放慢生产速度的一种机制)。
具有高并发性,硬件资源消耗更少。
流畅的API设计
同步和异步交互
流式传输支持
HTTP底层库选择
Spring5的WebClient客户端和WebFlux服务器都依赖于相同的非阻塞编解码器来编码和解码请求和响应内容。默认底层使用Netty,内置支持Jetty反应性HttpClient实现。同时,也可以通过编码的方式实现ClientHttpConnector接口自定义新的底层库;如切换Jetty实现:
基础配置
WebClient实例构造器可以设置一些基础的全局的web请求配置信息,比如默认的cookie、header、baseUrl等
通过定制Netty底层库,可以配置SSl安全连接,以及请求超时,读写超时等。这里需要注意一个问题,默认的连接池最大连接500。获取连接超时默认是45000ms,你可以配置成动态的连接池,就可以突破这些默认配置,也可以根据业务自己制定。包括Netty的select线程和工作线程也都可以自己设置。
针对特定的数据交互格式,可以设置自定义编解码的模式,如下:
uri构造时支持属性占位符,真实参数在入参时排序好就可以。同时可以通过accept设置媒体类型,以及编码。最终的结果值是通过Mono和Flux来接收的,在subscribe方法中订阅返回值。
如果需要携带复杂的查询参数,可以通过UriComponentsBuilder构造出uri请求地址,如:
下载文件时,因为不清楚各种格式文件对应的MI免费云主机域名ME Type,可以设置accept为MediaType.ALL,然后使用Spring的Resource来接收数据即可,如:
post请求示例演示了一个比较复杂的场景,同时包含表单参数和文件流数据。如果是普通post请求,直接通过bodyValue设置对象实例即可。不用FormInserter构造。
上面演示的都是异步的通过mono的subscribe订阅响应值。当然,如果你想同步阻塞获取结果,也可以通过.block()阻塞当前线程获取返回值。
但是,如果需要进行多个调用,则更高效地方式是避免单独阻塞每个响应,而是等待组合结果,如:
可以通过设置filter拦截器,统一修改拦截请求,比如认证的场景,如下示例,filter注册单个拦截器,filters可以注册多个拦截器,basicAuthentication是系统内置的用于basicAuth的拦截器,limitResponseSize是系统内置用于限制响值byte大小的拦截器
WebClient不支持websocket请求,请求websocket接口时需要使用WebSocketClient,如:到此,相信大家对“Spring5怎么配置WebClient”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: springboot-jta-atomikos多数据源事务管理如何实现

这篇文章主要介绍“springboot-jta-a免费云主机域名tomikos多数据源事务管理如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot-jta-atomikos多数据源事务管理如何实现…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/13 16:57
Next 08/13 16:57

相关推荐