1、SpringWebFlux介绍
(1)是Spring5添加新的模块,用于web开发的,功能SpringMVC类似的,Webflux使用当前一种比较流行响应式编程出现的框架
(2)使用传统web框架,比如SpringMVC,这些基于Servlet容器,Webflux是一种异步非阻塞的框架,异步非阻塞的框架在Servlet3.1以后才支持,核心是基于Rector的相关API实现的
(3)Webflux特点:
- 非阻塞:在有限资源下,提高系统吞吐量和伸缩性,以Rector为基础实现响应式编程
- 函数式编程:Spring5框架基于Java8,Webflux使用Java8函数式编程方式实现路由请求
(4)比较SpringMVC
- 两个框架都可以使用注解方式,都运行在Tomcat等容器中
- SpringMVC采用命令式编程,Webflux采用异步响应式编程
2、响应式编程
(1)响应式编程操作中,Reactor是满足Reactive规范框架
(2)Reactor有两个核心类,Mono和Flux,这两个类实现接口Publisher,提供丰富操作符。Flux对象实现发布者,返回N个元素,Mono实现翻发布者,返回0或者1个元素
(3)Flux和Mono都是数据流的发布者,使用Flux和Mono都可以发出三种数据型号:元素值,错误信号,完成信号,错误信号和完成信号都代表终止信号。
3、Webflux执行流程和核心API
4、SpringWebflux(基于注解编程模型)
5、SpringWebflux(基于函数式编程模型)