Webflux

1、Webflux

用于web开发,功能和springMVC类似,响应式编程实现,异步非阻塞。

关于异步非阻塞:

*异步和同步:都是针对调用者。调用者发送请求,如果等到对方回应之后才去做其他事情就是同步。如果发送请求后不用等就去做其他事,就是异步。

*阻塞和非阻塞:都是针对被调用者,被调用者收到请求之后,做完事情之后才给出反馈就是阻塞。被调用者收到请求之后,马上给出反馈再做事情就是非阻塞。

Webflux优势:

*异步非阻塞,有限资源下提高系统吞吐量和伸缩性,以Reactor为基础实现响应式编程

*函数式编程:Spring5基于java8,所以webflux可以用java8的函数式编程方式实现路由请求。

Spring webFlux和SpringMVC比较:两个框架都可以使用注解,都运行在Tomcat容器。但SpringMVC是命令式编程,webflux是异步响应式编程。

 

 

2、响应式编程:

响应式编程是一种面向数据流变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。

(1)Java8及以前版本:

提供了两个观察者模式两个类:Observer和Observable

public class ObserverDemo extends Observable {
    public static void main(String[] args) {
        ObserverDemo observer=new ObserverDemo();
        // add observer
        observer.addObserver((o, arg) -> {
            System.out.println("发生变化");
        });
        observer.addObserver((o, arg) -> {
            System.out.println("收到被观察者通知,准备改变");
        });
        observer.setChanged();// data changing
        observer.notifyObservers();//notify
    }
}

(2)Flow类取代了Java9。两个方法:Subscribe订阅和Publish发布

 

3、Webflux执行流程和核心API

4、SpringWebflux(基于注解实现)

5、SpringWebflux(基于函数式编程实现)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值