Spring Boot整合WebFlux + R2DBC+Mysql
1、R2DBC介绍
R2DBC 基于 Reactive Streams 反应流规范,它是一个开放的规范,为驱动程序供应商和使用方提供接口( r2dbc-spi ),与 JDBC 的阻塞特性不同,它提供了完全反应式的非阻塞 API 与 关系型数据库 交互。 简单说, R2DBC 项目是支持使用反应式编程 API 访问关系型数据库的桥梁,定义统一接口规范,不同数据库厂家通过实现该规范提供驱动程序包。 同时, r2dbc 还提供反应式连接池r2dbc-pool
具体了解可以参考下面连接:
https://cloud.tencent.com/developer/article/1741470
2、maven依赖
<!- 使用webFlux可以不需要在加载spring web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<groupId>dev.miku</groupId>
<artifactId>r2dbc-mysql</artifactId>
</dependency>
3、Spring Boot配置
spring:
r2dbc:
# 使用serverTimezone在控制台打印时间会出现乱码情况但不影响程序运行,翻阅资料之后换成serverZoneId可以解决这种问题。
# url: r2dbc:mysql://localhost:3306/数据库?serverTimezone=GMT%2b8&characterEncoding=UTF-8
url: r2dbc:mysql://localhost:3306/数据库?serverZoneId=GMT%2b8&characterEncoding=UTF-8
username: