Spring-webflux简介
spring-webflux
是spring在5.0版本后提供的一套响应式编程风格的web开发框架。
这个框架包含了 spring-framework
和spring mvc,它可以运行在Netty、Undertow以及3.1版本以上的Serlvet容器上。
你可以在项目中同时使用 spring-webmvc
和 spring-webflux
,或者只用其中一个来开发web应用。
什么是“响应式”
所谓响应式,举个例子,当调用一个api获取数据时,无需阻塞等待数据返回,而是当有数据返回时会进行告知。可见响应式是非阻塞的,意味着调用方法后,CPU可以去做别的事情,当接收到数据响应时CPU再回来处理,这种方式提高了系统的吞吐量。
而响应式编程,其实是为这种异步非阻塞的流式编程制定的一套标准。流式编程已不陌生了,Java8提供的stream api就是这种风格。这套标准包括对运行环境(JVM、JavaScript)以及网络协议相关的规范。
Spring-webflux的响应式API
Spring-webflux
框架是基于Reactor这个开源项目开发的。Reactor框架是跟Spring紧密配合的。
它提供了两种API类型,分别是Mono和Flux;
// Mono一般作用于单个对象 Mono person = personDao.getPerson