13.1 使用 R2DBC

响应式关系型数据库连接(通常称为 R2DBC)是一种使用响应类型处理关系数据新选择。它实际上是一个 JDBC 的响应式替代方案,支持针对传统关系型数据库,如 MySQL、PostgreSQL、H2 和 Oracle 的非阻塞持久化。因为它是建立在响应式基础上的,与 JDBC 有很大不同,是一个独立的规范,与 Java SE 无关。

Spring Data R2DBC 是 Spring Data 的一个子项目。它支持 R2DBC,与我们在第 3 章中看到的 Spring Data JDBC 非常相似。与 Spring Data JDBC 不同的是,Spring Data R2DBC 并不要求严格遵守领域驱动设计概念。事实上,您很快就会看到,使用 Spring Data R2DBC 通过聚合根持久化数据,需要比使用 Spring Data JDBC 要多做一些工作。

要使用 Spring Data R2DBC,您需要在项目的构建中添加一个 starter 依赖项。对于 Maven 构建的项目,依赖项如下所示:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>

或者,如果您使用 Initializr 配置工程,请在创建项目时勾选“Spring Data R2DBC”选择框。

您还需要一个关系数据库以便进行数据持久化,以及相应的 R2DBC 驱动。我们将使用内存数据库 H2。因此,我们需要增加两个依赖项:H2 数据库库和 H2 R2DBC 驱动。依赖项如下所示:

<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <scope>runtime</scope>
</dependency>
<dependency>
  <groupId>io.r2dbc</groupId>
  <artifactId>r2dbc-h2</artifactId>
  <scope>runtime</scope>
</dependency>

如果您使用不同的数据库,则需要配置相关依赖项以添加相应的 R2BDC 驱动程序。

现在,依赖项已经就位,让我们看看 Spring Data R2DBC 是如何工作的。让我们从定义实体类开始。

results matching ""

    No results matching ""