掌握 WebFlux 使用 R2DBC 连接 MySQL

本文使用两种方法介绍 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.javaR2dbcConfiguration.java 的结合体。

总结

以上两种方法都能够使 WebFlux 项目使用 R2DBC 连接到 MySQL,选择其中一种方法即可,推荐选择 application.yml 配置文件,毕竟比较清晰且容易管理。

作者信息

大家好,我是 CoderGeshu,一个热爱生活的程序员,如果这篇文章对您有所帮助,还请大家给点个赞哦
另外,欢迎大家关注本人同名公众号:CoderGeshu,一个致力于分享编程技术知识的公众号!!
一个人可以走的很快,而一群人可以走的很远……

你可能感兴趣的:(掌握 WebFlux 使用 R2DBC 连接 MySQL)