在Spring 5中,Spring MVC引入了webFlux的概念,webFlux的底层是基于reactor-netty来的,而reactor-netty又使用了Reactor库。本文将会介绍在Spring Boot中reactive在WebFlux中的使用。于是Spring Boot其实拥有了两套不同的web框架,第一套框架是基于传统的Servlet API和Spring MVC,第二套是基于最新的reactive框架,包括 Spring WebFlux 和Spring Data的reactive repositories。对于底层的数据源来说,MongoDB, Redis, 和 Cassandra 可以直接以reactive的方式支持Spring Data。而Spring Cloud Stream甚至可以支持RabbitMQ和Kafka的reactive模型。不同之处在于,我们请求的产生方式和返回值。熟悉Reactor的朋友可能都知道,在Reactor中有两种产生序列的方式,一种是Flux一种是Mono,其中Flux表示1或者多,而Mono表示0或者1。第二个方法是hellos,通过Flux的一系列操作,最后返回一个Flux对象。我们通过WebClient来获取get的结果,通过exchange将其转换为ClientResponse。WelcomeWebClient和Application是和第一种方式是一样的。

SpringBoot中的响应式web应用详解

SpringBoot中的响应式web应用详解

SpringBoot中的响应式web应用详解

SpringBoot中的响应式web应用详解

SpringBoot中的响应式web应用详解