Spring WebFlux 初探-响应式编程-020

  🤗 ApiHug × {Postman|Swagger|Api...} = 快↑ 准√ 省↓

  1. GitHub - apihug/apihug.com: All abou the Apihug   
  2. apihug.com: 有爱,有温度,有质量,有信任
  3. ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace

   The Next Generation API Development Platform - ApiHug

api-hug-contact

Spring WebFlux, 建立在 Reactor-Netty 之上!

#核心依赖

  1. io.projectreactor:reactor-core 参考 Reactor
  2. spring-boot-starter-reactor-netty 参考 Reactor Netty

//spring-boot-starter-reactor-netty
dependencies {api("io.projectreactor.netty:reactor-netty-http")
}

核心项目

Spring-framework | Spring-webflux 源码open in new window; 这里包含所有响应式编程和spring MVC 整合, 她的依赖关系:

\--- org.springframework:spring-webflux:5.3.22+--- org.springframework:spring-beans:5.3.22 (*)+--- org.springframework:spring-core:5.3.22 (*)+--- org.springframework:spring-web:5.3.22 (*)\--- io.projectreactor:reactor-core:3.4.21 (*)

包结构

整个 spring-boot-starter-webflux 如下图:

\--- org.springframework.boot:spring-boot-starter-webflux -> 2.7.2+--- org.springframework.boot:spring-boot-starter:2.7.2 (*)+--- org.springframework.boot:spring-boot-starter-json:2.7.2|    +--- org.springframework.boot:spring-boot-starter:2.7.2 (*)|    +--- org.springframework:spring-web:5.3.22 (*)|    +--- com.fasterxml.jackson.core:jackson-databind:2.13.3|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.3|    |    \--- com.fasterxml.jackson.core:jackson-core:2.13.3|    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.3|    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.3|    |    \--- com.fasterxml.jackson.core:jackson-databind:2.13.3 (*)|    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3|    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.3|    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.3|    |    \--- com.fasterxml.jackson.core:jackson-databind:2.13.3 (*)|    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.3|         +--- com.fasterxml.jackson.core:jackson-core:2.13.3|         \--- com.fasterxml.jackson.core:jackson-databind:2.13.3 (*)+--- org.springframework.boot:spring-boot-starter-reactor-netty:2.7.2|    \--- io.projectreactor.netty:reactor-netty-http:1.0.21|         +--- io.netty:netty-codec-http:4.1.79.Final|         |    +--- io.netty:netty-common:4.1.79.Final|         |    +--- io.netty:netty-buffer:4.1.79.Final|         |    |    \--- io.netty:netty-common:4.1.79.Final|         |    +--- io.netty:netty-transport:4.1.79.Final|         |    |    +--- io.netty:netty-common:4.1.79.Final|         |    |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    |    \--- io.netty:netty-resolver:4.1.79.Final|         |    |         \--- io.netty:netty-common:4.1.79.Final|         |    +--- io.netty:netty-codec:4.1.79.Final|         |    |    +--- io.netty:netty-common:4.1.79.Final|         |    |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    |    \--- io.netty:netty-transport:4.1.79.Final (*)|         |    \--- io.netty:netty-handler:4.1.79.Final|         |         +--- io.netty:netty-common:4.1.79.Final|         |         +--- io.netty:netty-resolver:4.1.79.Final (*)|         |         +--- io.netty:netty-buffer:4.1.79.Final (*)|         |         +--- io.netty:netty-transport:4.1.79.Final (*)|         |         +--- io.netty:netty-transport-native-unix-common:4.1.79.Final|         |         |    +--- io.netty:netty-common:4.1.79.Final|         |         |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |         |    \--- io.netty:netty-transport:4.1.79.Final (*)|         |         \--- io.netty:netty-codec:4.1.79.Final (*)|         +--- io.netty:netty-codec-http2:4.1.79.Final|         |    +--- io.netty:netty-common:4.1.79.Final|         |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    +--- io.netty:netty-transport:4.1.79.Final (*)|         |    +--- io.netty:netty-codec:4.1.79.Final (*)|         |    +--- io.netty:netty-handler:4.1.79.Final (*)|         |    \--- io.netty:netty-codec-http:4.1.79.Final (*)|         +--- io.netty:netty-resolver-dns:4.1.79.Final|         |    +--- io.netty:netty-common:4.1.79.Final|         |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    +--- io.netty:netty-resolver:4.1.79.Final (*)|         |    +--- io.netty:netty-transport:4.1.79.Final (*)|         |    +--- io.netty:netty-codec:4.1.79.Final (*)|         |    +--- io.netty:netty-codec-dns:4.1.79.Final|         |    |    +--- io.netty:netty-common:4.1.79.Final|         |    |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    |    +--- io.netty:netty-transport:4.1.79.Final (*)|         |    |    \--- io.netty:netty-codec:4.1.79.Final (*)|         |    \--- io.netty:netty-handler:4.1.79.Final (*)|         +--- io.netty:netty-resolver-dns-native-macos:4.1.79.Final|         |    \--- io.netty:netty-resolver-dns-classes-macos:4.1.79.Final|         |         +--- io.netty:netty-common:4.1.79.Final|         |         +--- io.netty:netty-resolver-dns:4.1.79.Final (*)|         |         \--- io.netty:netty-transport-native-unix-common:4.1.79.Final (*)|         +--- io.netty:netty-transport-native-epoll:4.1.79.Final|         |    +--- io.netty:netty-common:4.1.79.Final|         |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    +--- io.netty:netty-transport:4.1.79.Final (*)|         |    +--- io.netty:netty-transport-native-unix-common:4.1.79.Final (*)|         |    \--- io.netty:netty-transport-classes-epoll:4.1.79.Final|         |         +--- io.netty:netty-common:4.1.79.Final|         |         +--- io.netty:netty-buffer:4.1.79.Final (*)|         |         +--- io.netty:netty-transport:4.1.79.Final (*)|         |         \--- io.netty:netty-transport-native-unix-common:4.1.79.Final (*)|         +--- io.projectreactor.netty:reactor-netty-core:1.0.21|         |    +--- io.netty:netty-handler:4.1.79.Final (*)|         |    +--- io.netty:netty-handler-proxy:4.1.79.Final|         |    |    +--- io.netty:netty-common:4.1.79.Final|         |    |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    |    +--- io.netty:netty-transport:4.1.79.Final (*)|         |    |    +--- io.netty:netty-codec:4.1.79.Final (*)|         |    |    +--- io.netty:netty-codec-socks:4.1.79.Final|         |    |    |    +--- io.netty:netty-common:4.1.79.Final|         |    |    |    +--- io.netty:netty-buffer:4.1.79.Final (*)|         |    |    |    +--- io.netty:netty-transport:4.1.79.Final (*)|         |    |    |    \--- io.netty:netty-codec:4.1.79.Final (*)|         |    |    \--- io.netty:netty-codec-http:4.1.79.Final (*)|         |    +--- io.netty:netty-resolver-dns:4.1.79.Final (*)|         |    +--- io.netty:netty-resolver-dns-native-macos:4.1.79.Final (*)|         |    +--- io.netty:netty-transport-native-epoll:4.1.79.Final (*)|         |    \--- io.projectreactor:reactor-core:3.4.20 -> 3.4.21 (*)|         \--- io.projectreactor:reactor-core:3.4.20 -> 3.4.21 (*)+--- org.springframework:spring-web:5.3.22 (*)\--- org.springframework:spring-webflux:5.3.22+--- org.springframework:spring-beans:5.3.22 (*)+--- org.springframework:spring-core:5.3.22 (*)+--- org.springframework:spring-web:5.3.22 (*)\--- io.projectreactor:reactor-core:3.4.21 (*)

#参考

  1. spring-framework | spring-webflux 源码open in new window
  2. Web on Reactive Stack 官方文档open in new window
  3. Spring-boot | web reactive 文档open in new window
  4. 第二学院 reactive 例子代码open in new window
  5. 第二学院 reactive 文档open in new window
  6. spring security reactive 安全open in new window
  7. Spring Cloud Gateway 最佳示范open in new window
  8. baeldung webfluxopen in new window
  9. baeldung websoketopen in new window
  10. baeldung reactive codeopen in new window
  11. rsocket

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/698055.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.2 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NO MATCH”

方法一:在程序内部设置两个字符串内容,终端返回是否匹配 运行效果: 思路: 1、先比较两个字符串的长度,如果长度不一样,则两组字符串肯定不匹配;如果长度一样,再进行内容的匹配 2、如…

读万卷书|《从负债2000万到心想事成每一天》相信相信的力量

‍ ‍‍今天是2024年第20周 这是「输出倒逼输入」计划的第8篇文章 全年进度:8/52 PART 1 书籍简要介绍 阅读动力 这本书是读书群的好朋友小鹅推荐的,当时看完她的推荐就记住了这本书,感觉会是一本轻松愉悦且积极向上的书。而且冲着这个活力满…

【管理咨询宝藏101】普华永道并购尽调内部培训

【管理咨询宝藏101】普华永道并购尽调内部培训 【格式】PDF版本 【关键词】普华永道、兼并收购、尽职调查 【核心观点】 - 尽职调查的目的,发现潜在的致命缺陷,判断是否继续交易进程;发现潜在的问题,制定交易前后相应的应对措施。…

activiti——流程变量

文章目录 前言定义说明定义流程变量的作用域(范围) 绘制流程图文件部署数据库设置流程变量并执行流程Global 作用域 流程变量设置启动流程时设定变量查询已经创建的流程信息完成提交申请节点任务,推进工作流任务执行完成部门经理审批 推进节点 Local 流程变量 删除已…

齐护K210系列教程(十二)_拍照存SD卡

在AIstart中我们经常会用到在某些情况成立时,要把当前摄像头中的图像进行保存,这时我们就要用到拍照保存到SD卡的功能。 1,按键拍照保存 下面以【AIstart_掌机】为例,按下“口”键拍照1次存1.jpg到SD卡,再按拍照2.jpg…

在云计算与人工智能中,7ECloud扮演着什么样的角色

数据驱动的时代,云计算和人工智能已成为推动现代科技进步的两大引擎。作为一家专注于云计算的公司,7ECloud正是在这个领域发挥自己的力量,力图为企业提供一站式解决方案,并拥有来自厂家的源头支持,用极其低的价格助力企…

初始Linux(一)基础命令

前言: 我们不能总沉浸在编程语言中,虽然代码能力提升了,但是也只是开胃小菜。我们要朝着更高的方向发展。 最近小编一直在刷力扣,以至于博客更新的比较少。今天就带各位开始学习全新的知识——Linux.至于为啥要学? Lin…

【简单探索微软Edge】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

内存屏障 - LINUX KERNEL MEMORY BARRIERS 上 与 下

内存屏障(Memory Barrier)是在计算机体系结构中使用的一种同步机制,用于确保在多线程或多核处理器环境中,对共享内存的操作按照预期顺序进行。它们通过强制在特定点执行一些指令来规定内存访问的顺序,并防止内存乱序执…

【antd + vue】Failed to resolve component: a-select-option

一、问题说明 1、出现情况&#xff1a; <a-select>嵌套<a-select-option>&#xff0c;其中<a-select-option>循环&#xff0c;能正常使用&#xff0c;但是控制台警告。 2、控制台警告&#xff1a; [Vue warn]: Failed to resolve component: a-select-op…

python下载及安装

1、python下载地址&#xff1a; Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2、python安装 &#xff08;1&#xff09; 直接点击下载后的可执行文件.exe &#xff08;2&…

讨论:WGS84与CGCS2000的坐标系怎么互转

前言&#xff1a; 今天我们要讨论一个问题&#xff1a;WGS84与CGCS2000的坐标系怎么互转&#xff1f; 对于有一定基础的朋友应该知道&#xff0c;WGS84和CGCS2000属于不同的椭球&#xff0c;如果进行严密的数学转换&#xff0c;是需要建立参数模型之后&#xff0c;再进行转换&…