WebFlux

发布时间 2023-07-28 13:55:01作者: 郭培鑫同学

WebFlux

个人理解:webflux跟springmvc功能类似,区别是实现异步非阻塞。是spring家族中的响应式web框架。以全新的java9后的响应式编程编写,具有前瞻性。同时,webflux是基于Reactor框架,并且以数据流处理为中心的框架。类型java中Stream流,具有流的一些特点。(需要关闭流了才传递)

  • WebFlux的设计模式:观察者模式

  • WebFlux具体编程:Flow类。

  • 类中有两核心方法:Publisher和Subscriber

上面也提到了WebFlux是基于Reactor框架,那么以下学习该Reactor框架的一些核心。


Reactor框架

  • 类:Mono和Flux,都实现了Publisher,提供许多用于消费的操作符,Flux实现了发布者,返回N个元素;Mono实现了发布者,返回1或0个元素。
Mono Flux
接口实现 Publisher Publisher
返回值 1或0个元素 N个元素
数据信号 错误信号,完成信号,元素值 错误信号,完成信号,元素值
发布者 Mono对象 Flux对象
方法 just() just()

如果只使用了just()方法是不会打印出数据流的,需要进行订阅后才能发出,使用subscribe(),类似于Stream类的count()方法进行截止。

基于注解实现

创建一个SpringBoot工程,service包、entire包、controller包,在sevice中impl类里的方法是对数据库进行操作的方法,如果需要查询一条数据,则方法的返回类型为Mono;如果需要查询多条数据,则方法的返回类型为Flux。方法里的具体对数据库操作根据Reator框架的方法实现。

最后还需要对Flow进行终止操作。

基于响应式编程

参考:SpringWebflux详细讲解 - 李东平|一线码农 - 博客园 (cnblogs.com)