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)
标签:Publisher,框架,Mono,WebFlux,Flux,方法 From: https://www.cnblogs.com/container-simple/p/17587390.html