本文使用两种方法介绍 Spring Boot WebFlux 使用 R2DBC 连接 MySQL:
- 使用配置 Java 类
- 使用配置文件:application.yml
相关技术点:WebFlux、R2DBC 等技术请自行了解。
Spring Boot WebFlux 使用 R2DBC 技术连接 MySQL,首先需要在 WebFlux 项目的基础上导入以下两个依赖:
dev.miku
r2dbc-mysql
org.springframework.boot
spring-boot-starter-data-r2dbc
方法一:使用 Java 配置文件
在 Spring Boot WebFlux 项目中创建目录 config,添加以下两个配置 Java 类即可。
ConnectionFactoryConfiguration.java
配置类,用来配置 MySQL 的连接信息。如下:
package com.codergeshu.webfluxr2dbc.config;
import dev.miku.r2dbc.mysql.MySqlConnectionConfiguration;
import dev.miku.r2dbc.mysql.MySqlConnectionFactory;
import io.r2dbc.spi.ConnectionFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Date: 2021/2/23 10:28
* @author: Eric
*/
@Configuration
public class ConnectionFactoryConfiguration {
@Bean
public ConnectionFactory connectionFactory() {
return MySqlConnectionFactory.from(MySqlConnectionConfiguration.builder()
.host("127.0.0.1") // 主机地址
.port(3306) // 端口
.username("root") // 用户名
.password("123456") // 密码
.database("webflux_demo") // 连接的数据库名称
.build());
}
}
R2dbcConfiguration.java
配置类,用来启用 R2DBC 技术连接 MySQL。代码如下:
package com.codergeshu.webfluxr2dbc.config;
import io.r2dbc.spi.ConnectionFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration;
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
/**
* @Date: 2021/1/26 11:29
* @author: Eric
*/
@Configuration
@EnableR2dbcRepositories
public class R2dbcConfiguration extends AbstractR2dbcConfiguration {
private final ConnectionFactory connectionFactory;
public R2dbcConfiguration(@Qualifier("connectionFactory") ConnectionFactory connectionFactory) {
this.connectionFactory = connectionFactory;
}
@Override
public ConnectionFactory connectionFactory() {
return this.connectionFactory;
}
}
至此使用配置类方式就完成了使用 R2DBC 连接 MySQL,之后就可以使用 ReactiveCrudRepository
进行相关数据库操作了。
方法二:使用 application.yml配置文件
除了使用上述两个配置 Java 类外,我们还可以使用 application.yml 文件进行 R2DBC 连接 MySQL 的配置,内容如下:
spring:
r2dbc:
url: r2dbc:mysql://127.0.0.1:3306/webflux_demo?serverTimezone=GMT&characterEncoding=UTF-8
username: root
password: 123456
name: r2dbc
pool:
validation-query: SELECT 1
enabled: true
其配置信息类似于 ConnectionFactoryConfiguration.java
和 R2dbcConfiguration.java
的结合体。
总结
以上两种方法都能够使 WebFlux 项目使用 R2DBC 连接到 MySQL,选择其中一种方法即可,推荐选择 application.yml 配置文件,毕竟比较清晰且容易管理。
作者信息
大家好,我是 CoderGeshu,一个热爱生活的程序员,如果这篇文章对您有所帮助,还请大家给点个赞哦
另外,欢迎大家关注本人同名公众号:CoderGeshu,一个致力于分享编程技术知识的公众号!!
一个人可以走的很快,而一群人可以走的很远……