一、介绍
Reactive Programming
响应式编程指的是数据驱动的、异步和并发的编程范式。简而言之,异步数据流编程。对于数据流进行创建、组合、过滤、转换等操作,最终得到所需要的处理和结果。典型的框架有 RxJava、Reactor 等。
WebFlux
WebFlux 是 Spring Framework 提供的新一代 Web 开发框架,区别于 Spring MVC,WebFlux 提供了非阻塞的、基于 Reactive 技术栈的开发框架,以发挥出多核编程的优势。
两者的异同如下:
WebFlux.jpeg
MySQL 支持
直到 Spring Boot 2.3.0.RELEASE,才正式支持基于 r2dbc 的 MySQL 驱动。
本文使用的框架、环境和工具如下:
二、创建工程
本文基于 IntelliJ IDEA 来创建工程,读者也可以自行基于 spring initializr 来创建。
1. 新建工程
点击菜单中【File】→【New】→ 【Project...】,出现以下对话框,选择 Spring initializr:
1.png
说明
JDK: 选择 JDK 8 及以上,建议使用 OpenJDK,以避免法律风险
从 2020.1 开始, IntelliJ IDEA 已经自带有 JDK 下载功能,不需要再独立下载和安装
在 Project SDK 栏中下拉,选择 Download JDK...,出现下面的对话框,选择合适的版本下载即可。
2.png
2. 填写项目信息
点击 Next,进入填写项目信息界面。
3.png
说明
Group 和 Artifact:根据需要修改
Type:保持 Maven Project
3. 选择特性
点击 Next,进入选择特性界面。
4.png
说明
选择以下组件:
Developer Tools
Lombok
Web
Spring Reactive Web
SQL
Spring Data R2DBC
MySQL Driver
4. 设置项目名称和目录界面
点击 Next,进入设置项目名称和目录界面,保持默认即可。
5.png
5. 生成项目
点击 Finish,生成项目,进入 IDE,典型的 Spring Boot 项目结构。
6.png
三、准备 MySQL 数据
在开始写代码之前,先准备好测试用的数据环境。本文使用的是 MySQL 8.0.19。MySQL 社区版的官方下载地址是 MySQL Community Server。
安装 MySQL
如果有现成的 MySQL 环境,请跳过此步骤。
Windows 用户:直接下载 MySQL Installer for Windows,安装即可。
Mac 用户: 使用 homebrew 安装更为便捷,命令如下:
brew install mysql
创建 database
首先,创建 database spring_r2dbc_samples,并创建用户 spring_r2dbc_samples_user,脚本如下:
CREATE DATABASE `spring_r2dbc_samples` CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_general_ci';
CREATE USER `spring_r2dbc_samples_user`@`%` IDENTIFIED WITH mysql_native_password BY 'B55!3Ufhj';
CREATE USER `spring_r2dbc_samples_user`@`localhost` IDENTIFIED WITH mysql_native_password BY 'B55!3Ufhj&