Micronaut 数据访问配置

2023-03-13 11:17 更新

下表总结了要添加到构建中以启用它们的配置模块和依赖项:

表 1. 数据访问配置模块
依赖 描述

io.micronaut.sql:micronaut-jdbc-dbcp

使用 Commons DBCP 配置 SQL 数据源

io.micronaut.sql:micronaut-jdbc-hikari

使用 Hikari 连接池配置 SQL 数据源

io.micronaut.sql:micronaut-jdbc-tomcat

使用 Tomcat 连接池配置 SQL 数据源

io.micronaut.sql:micronaut-hibernate-jpa

配置 Hibernate/JPA EntityManagerFactory beans

io.micronaut.groovy:micronaut-hibernate-gorm

为 Groovy 应用程序配置 GORM for Hibernate

io.micronaut.mongodb:micronaut-mongo-reactive

配置 MongoDB 响应式驱动程序

io.micronaut.groovy:micronaut-mongo-gorm

Configures GORM for MongoDB for Groovy applications

io.micronaut.neo4j:micronaut-neo4j-bolt

Configures the Bolt Java Driver for Neo4j

io.micronaut.groovy:micronaut-neo4j-gorm

Configures GORM for Neo4j for Groovy applications

io.micronaut.sql:micronaut-vertx-mysql-client

Configures the Reactive MySQL Client

io.micronaut.sql:micronaut-vertx-pg-client

Configures the Reactive Postgres Client

io.micronaut.redis:micronaut-redis-lettuce

Configures the Lettuce driver for Redis

io.micronaut.cassandra:micronaut-cassandra

Configures the Datastax Java Driver for Cassandra

例如,要添加对 MongoDB 的支持,请添加以下依赖项:

build.gradle

compile "io.micronaut.mongodb:micronaut-mongo-reactive"

对于 Groovy 用户,Micronaut 为 GORM 提供特殊支持。

使用适用于 Hibernate 的 GORM,您不能同时拥有 hibernate-jpa 和 hibernate-gorm 依赖项。

以下部分将详细介绍每个实现的配置选项和公开的 bean。

配置 SQL 数据源

可以为当前提供的三种实现之一配置 JDBC 数据源——默认支持 Apache DBCP2、Hikari 和 Tomcat。

配置 JDBC 数据源

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 jdbc-tomcat、jdbc-hikari 或 jdbc-dbcp 功能之一,以在您的项目中预配置一个简单的 JDBC 连接池,以及一个默认的 H2 数据库驱动程序:

$ mn create-app my-app --features jdbc-tomcat

首先,为与您将使用的实现相对应的 JDBC 配置之一添加依赖项。选择以下选项之一:

 Gradle Maven 
runtimeOnly("io.micronaut.sql:micronaut-jdbc-tomcat")
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-tomcat</artifactId>
    <scope>runtime</scope>
</dependency>
 Gradle Maven 
runtimeOnly("io.micronaut.sql:micronaut-jdbc-hikari")
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-hikari</artifactId>
    <scope>runtime</scope>
</dependency>
 Gradle Maven 
runtimeOnly("io.micronaut.sql:micronaut-jdbc-dbcp")
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-jdbc-dbcp</artifactId>
    <scope>runtime</scope>
</dependency>
 Gradle Maven 
runtimeOnly("io.micronaut.sql:micronaut-jdbc-ucp")
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

此外,将 JDBC 驱动程序依赖项添加到您的构建中。例如添加 H2 内存数据库:

 Gradle Maven 
runtimeOnly("com.h2database:h2")
<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

配置 Hibernate

设置 Hibernate/JPA EntityManager

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 hibernate-jpa 功能以在您的项目中包含 Hibernate JPA 配置:

$ mn create-app my-app --features hibernate-jpa

Micronaut 包括对配置基于 SQL 数据源支持的 Hibernate / JPA EntityManager 的支持。

一旦您配置了一个或多个数据源以使用 Hibernate,请将 hibernate-jpa 依赖项添加到您的构建中:

 Gradle Maven 
implementation("io.micronaut.sql:micronaut-hibernate-jpa")
<dependency>
    <groupId>io.micronaut.sql</groupId>
    <artifactId>micronaut-hibernate-jpa</artifactId>
</dependency>

在 Hibernate 中使用 GORM

对于 Groovy 用户和熟悉 Grails 框架的用户,可以使用 GORM for Hibernate 的特殊支持。要将 GORM 用于 Hibernate,请不要包括 Micronaut 的内置 SQL 支持或 hibernate-jpa 依赖项,因为 GORM 本身负责创建 DataSource、SessionFactory 等。

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 hibernate-gorm 功能以在您的项目中包含 GORM、基本连接池配置和默认 H2 数据库驱动程序:

$ mn create-app my-app --features hibernate-gorm

配置 MongoDB

设置本机 MongoDB 驱动程序

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 mongo-reactive 功能以在您的项目中配置本机 MongoDB 驱动程序:

$ mn create-app my-app --features mongo-reactive

Micronaut 可以自动配置原生的 MongoDB Java 驱动程序。要使用它,请将以下依赖项添加到您的构建中:

 Gradle Maven 
implementation("io.micronaut.mongodb:micronaut-mongo-reactive")
<dependency>
    <groupId>io.micronaut.mongodb</groupId>
    <artifactId>micronaut-mongo-reactive</artifactId>
</dependency>

然后在你的配置文件(例如 application.yml)中配置 MongoDB 服务器的 URI:

Configuring a MongoDB server

 Properties Yaml  Toml  Groovy  Hocon  JSON 
mongodb.uri=mongodb://username:password@localhost:27017/databaseName
mongodb:
  uri: mongodb://username:password@localhost:27017/databaseName
[mongodb]
  uri="mongodb://username:password@localhost:27017/databaseName"
mongodb {
  uri = "mongodb://username:password@localhost:27017/databaseName"
}
{
  mongodb {
    uri = "mongodb://username:password@localhost:27017/databaseName"
  }
}
{
  "mongodb": {
    "uri": "mongodb://username:password@localhost:27017/databaseName"
  }
}

mongodb.uri 遵循 MongoDB 连接字符串格式。

然后可以使用非阻塞 Reactive Streams MongoClient 进行依赖注入。

要使用阻塞驱动程序,请在 mongo-java-driver 上为您的构建添加依赖项:

runtimeOnly "org.mongodb:mongo-java-driver"

然后阻塞的 MongoClient 将可用于注入。

配置 Neo4j

Micronaut 专门支持为流行的 Neo4j 图形数据库自动配置 Neo4j Bolt 驱动程序。

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 neo4j-bolt 功能以在您的项目中配置 Neo4j Bolt 驱动程序:

$ mn create-app my-app --features neo4j-bolt

要配置 Neo4j Bolt 驱动程序,首先将 neo4j-bolt 模块添加到您的构建中:

 Gradle Maven 
implementation("io.micronaut:micronaut-neo4j-bolt")
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-neo4j-bolt</artifactId>
</dependency>

然后在配置文件中配置 Neo4j 服务器的 URI(例如 application.yml):

Configuring neo4j.uri

 Properties Yaml  Toml  Groovy  Hocon  JSON 
neo4j.uri=bolt://localhost
neo4j:
  uri: bolt://localhost
[neo4j]
  uri="bolt://localhost"
neo4j {
  uri = "bolt://localhost"
}
{
  neo4j {
    uri = "bolt://localhost"
  }
}
{
  "neo4j": {
    "uri": "bolt://localhost"
  }
}

neo4j.uri 设置必须采用 Neo4j 文档的连接 URI 部分中描述的格式

完成上述配置后,您可以注入 org.neo4j.driver.v1.Driver bean 的实例,它具有同步阻塞 API 和基于 CompletableFuture 的非阻塞 API。

配置 Postgres

Micronaut 支持反应式和非阻塞客户端使用 vertx-pg-client 连接到 Postgres,它可以使用单个线程处理许多数据库连接。

配置反应式 Postgres 客户端

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 vertx-pg-client 功能以在您的项目中配置 Reactive Postgres 客户端:

$ mn create-app my-app --features vertx-pg-client

要配置 Reactive Postgres 客户端,首先将 vertx-pg-client 模块添加到您的构建中:

build.gradle

compile "io.micronaut.sql:micronaut-vertx-pg-client"

配置 Redis

Micronaut 通过 redis-lettuce 模块为 Redis 自动配置 Lettuce 驱动程序。

配置 Lettuce

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 redis-lettuce 功能以在您的项目中配置 Lettuce 驱动程序:

$ mn create-app my-app --features redis-lettuce

要配置 Lettuce 驱动程序,首先将 redis-lettuce 模块添加到您的构建中:

build.gradle

compile "io.micronaut.redis:micronaut-redis-lettuce"

然后在配置文件中配置 Redis 服务器的 URI(例如 application.yml):

Configuring redis.uri

 Properties Yaml  Toml  Groovy  Hocon  JSON 
redis.uri=redis://localhost
redis:
  uri: redis://localhost
[redis]
  uri="redis://localhost"
redis {
  uri = "redis://localhost"
}
{
  redis {
    uri = "redis://localhost"
  }
}
{
  "redis": {
    "uri": "redis://localhost"
  }
}

redis.uri 设置必须采用 Lettuce wiki 的连接 URI 部分中描述的格式

您还可以使用 redis.uris 指定多个 Redis URI,在这种情况下,将改为创建 RedisClusterClient。

配置 Cassandra

使用 CLI

如果您使用 Micronaut CLI 创建项目,请提供 cassandra 功能以在您的项目中包含 Cassandra 配置:

$ mn create-app my-app --features cassandra

配置 Liquibase

要配置 Micronaut 与 Liquibase 的集成,请按照这些说明进行操作。

配置 Flyway

要配置 Micronaut 与 Flyway 的集成,请按照以下说明进行操作


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号