zoukankan      html  css  js  c++  java
  • Spring Webflux

    介绍

    Webflux是 Spring5 添加新的用于 web 开发的模块,功能和 SpringMVC 类似,基于响应式编程出现的框架
    SpringMVC是基于 Servlet 容器,Webflux 是一种异步非阻塞的框架,异步非阻塞的框架在 Servlet3.1 以后才支持,核心是基于 Reactor 的相关 API 实现的

    异步非阻塞

    异步和同步针对调用者,调用者发送请求,如果等着对方回应之后才去做其他事情就是同步,如果发送请求之后不等着对方回应就去做其他事情就是异步;
    阻塞和非阻塞针对被调用者,被调用者收到请求之后,做完请求任务之后才给出反馈就是阻塞,收到请求之后马上给出反馈然后再去做事情就是非阻塞

    Webflux的特点

    1. 非阻塞式:在有限资源下,提高系统吞吐量和伸缩性,以 Reactor 为基础实现响应式编程
    2. 函数式编程:Spring5 框架基于 java8,Webflux 使用 Java8 函数式编程方式实现路由请求

    与Spring MVC的比较

    Spring MVC or WebFlux

    1. 两个框架都可以使用注解方式,都运行在 Tomcat 等容器中
    2. SpringMVC 采用命令式编程,Webflux 采用异步响应式编程

    响应式编程

    1. 响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便的表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播
      电子表格程序就是响应式编程的一个例子。单元格可以包含字面值或类似"=B1+C1"的公式,而包含公式的单元格的值会依据其他单元格的值的变化而变化
    2. 响应式编程操作中,Reactor 是满足 Reactive 规范框架
    3. Reactor 有两个核心类,Mono 和 Flux,这两个类实现接口 Publisher
      Flux 返回 N 个元素
      Mono 返回 0 或者 1 个元素
    4. Flux 和 Mono 都是数据流的发布者,使用 Flux 和 Mono 都可以发出三种数据信号: 元素值,错误信号,完成信号
      错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了,错误信号终止数据流同时把错误信息传递给订阅者

    使用案例

    GitHub
    Gitee

    官方文档

    Spring Webflux Docs

  • 相关阅读:
    OpenLayer学习之图文标注
    HTML5制作时钟(canvas)
    ADO,NET中简单三层SQLHelper封装介绍
    OpenLayer学习之加载天地图
    ArcGIS Server manger管理页面无法打开问题解决
    Java EE (14) -- SSH配置
    R语言实战读书笔记(一)R语言介绍
    Machine Learning for hackers读书笔记_一句很重要的话
    Machine Learning for hackers读书笔记(十二)模型比较
    Machine Learning for hackers读书笔记(十)KNN:推荐系统
  • 原文地址:https://www.cnblogs.com/ding-dang/p/13390859.html
Copyright © 2011-2022 走看看