WebClient介绍
- 使用webClient—以响应式Reactive方式,处理http请求的非阻塞式客户端,响应式编程引入spring-boot-starter-webflux,project-reactor
- 底层支持Http库Reactor Netty——ReactorClientHttpConnector
- Spring Boot没有自动配置RestTemplate和WebClient客户端,需自己创建
- WebClient.create()/WebClient.builder()
- 可以取得Object对象,或者是包含请求头等信息的Entity,发起请求可以用get/post/patch/put/delete
- 获得结果retrieve()/exchange()
- 对status做针对性处理onStatus()
- 应答正文bodyToMono()/bodyToFlux(),Flux是0-N个异步序列,Mono是0或1个,Mono和Flux可以进行相互转化,对Flux计数得到Mono对象,合并两个Mono序列,得到一个Flux对象
-
运行时web设为none,不要启动Tomcat,其中main的写法

-
响应式编程,得到id=1的coffee信息--nio-4线程

-
响应式编程,添加新的咖啡--nio-6线程

-
响应式编程,在主线程中打印出所有的咖啡--main
cdl.await()等待子线程执行完毕,主线程再执行
注意,对于countDownLatch多个子线程,不能根据代码顺序决定执行的顺序,它是多个子线程并发执行的,另外toStram()可以取得所有结果了