Micronaut 數(shù)據(jù)訪問(wèn)配置

2023-03-13 11:17 更新

下表總結(jié)了要添加到構(gòu)建中以啟用它們的配置模塊和依賴項(xiàng):

表 1. 數(shù)據(jù)訪問(wèn)配置模塊
依賴 描述

io.micronaut.sql:micronaut-jdbc-dbcp

使用 Commons DBCP 配置 SQL 數(shù)據(jù)源

io.micronaut.sql:micronaut-jdbc-hikari

使用 Hikari 連接池配置 SQL 數(shù)據(jù)源

io.micronaut.sql:micronaut-jdbc-tomcat

使用 Tomcat 連接池配置 SQL 數(shù)據(jù)源

io.micronaut.sql:micronaut-hibernate-jpa

配置 Hibernate/JPA EntityManagerFactory beans

io.micronaut.groovy:micronaut-hibernate-gorm

為 Groovy 應(yīng)用程序配置 GORM for Hibernate

io.micronaut.mongodb:micronaut-mongo-reactive

配置 MongoDB 響應(yīng)式驅(qū)動(dòng)程序

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

例如,要添加對(duì) MongoDB 的支持,請(qǐng)?zhí)砑右韵乱蕾図?xiàng):

build.gradle

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

對(duì)于 Groovy 用戶,Micronaut 為 GORM 提供特殊支持。

使用適用于 Hibernate 的 GORM,您不能同時(shí)擁有 hibernate-jpa 和 hibernate-gorm 依賴項(xiàng)。

以下部分將詳細(xì)介紹每個(gè)實(shí)現(xiàn)的配置選項(xiàng)和公開的 bean。

配置 SQL 數(shù)據(jù)源

可以為當(dāng)前提供的三種實(shí)現(xiàn)之一配置 JDBC 數(shù)據(jù)源——默認(rèn)支持 Apache DBCP2、Hikari 和 Tomcat。

配置 JDBC 數(shù)據(jù)源

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;jdbc-tomcat、jdbc-hikari 或 jdbc-dbcp 功能之一,以在您的項(xiàng)目中預(yù)配置一個(gè)簡(jiǎn)單的 JDBC 連接池,以及一個(gè)默認(rèn)的 H2 數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序:

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

首先,為與您將使用的實(shí)現(xiàn)相對(duì)應(yīng)的 JDBC 配置之一添加依賴項(xiàng)。選擇以下選項(xiàng)之一:

 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 驅(qū)動(dòng)程序依賴項(xiàng)添加到您的構(gòu)建中。例如添加 H2 內(nèi)存數(shù)據(jù)庫(kù):

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

配置 Hibernate

設(shè)置 Hibernate/JPA EntityManager

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;hibernate-jpa 功能以在您的項(xiàng)目中包含 Hibernate JPA 配置:

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

Micronaut 包括對(duì)配置基于 SQL 數(shù)據(jù)源支持的 Hibernate / JPA EntityManager 的支持。

一旦您配置了一個(gè)或多個(gè)數(shù)據(jù)源以使用 Hibernate,請(qǐng)將 hibernate-jpa 依賴項(xiàng)添加到您的構(gòu)建中:

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

在 Hibernate 中使用 GORM

對(duì)于 Groovy 用戶和熟悉 Grails 框架的用戶,可以使用 GORM for Hibernate 的特殊支持。要將 GORM 用于 Hibernate,請(qǐng)不要包括 Micronaut 的內(nèi)置 SQL 支持或 hibernate-jpa 依賴項(xiàng),因?yàn)?nbsp;GORM 本身負(fù)責(zé)創(chuàng)建 DataSource、SessionFactory 等。

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;hibernate-gorm 功能以在您的項(xiàng)目中包含 GORM、基本連接池配置和默認(rèn) H2 數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序:

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

配置 MongoDB

設(shè)置本機(jī) MongoDB 驅(qū)動(dòng)程序

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;mongo-reactive 功能以在您的項(xiàng)目中配置本機(jī) MongoDB 驅(qū)動(dòng)程序:

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

Micronaut 可以自動(dòng)配置原生的 MongoDB Java 驅(qū)動(dòng)程序。要使用它,請(qǐng)將以下依賴項(xiàng)添加到您的構(gòu)建中:

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

然后在你的配置文件(例如 application.yml)中配置 MongoDB 服務(wù)器的 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 進(jìn)行依賴注入。

要使用阻塞驅(qū)動(dòng)程序,請(qǐng)?jiān)?nbsp;mongo-java-driver 上為您的構(gòu)建添加依賴項(xiàng):

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

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

配置 Neo4j

Micronaut 專門支持為流行的 Neo4j 圖形數(shù)據(jù)庫(kù)自動(dòng)配置 Neo4j Bolt 驅(qū)動(dòng)程序。

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;neo4j-bolt 功能以在您的項(xiàng)目中配置 Neo4j Bolt 驅(qū)動(dòng)程序:

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

要配置 Neo4j Bolt 驅(qū)動(dòng)程序,首先將 neo4j-bolt 模塊添加到您的構(gòu)建中:

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

然后在配置文件中配置 Neo4j 服務(wù)器的 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 設(shè)置必須采用 Neo4j 文檔的連接 URI 部分中描述的格式

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

配置 Postgres

Micronaut 支持反應(yīng)式和非阻塞客戶端使用 vertx-pg-client 連接到 Postgres,它可以使用單個(gè)線程處理許多數(shù)據(jù)庫(kù)連接。

配置反應(yīng)式 Postgres 客戶端

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;vertx-pg-client 功能以在您的項(xiàng)目中配置 Reactive Postgres 客戶端:

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

要配置 Reactive Postgres 客戶端,首先將 vertx-pg-client 模塊添加到您的構(gòu)建中:

build.gradle

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

配置 Redis

Micronaut 通過(guò) redis-lettuce 模塊為 Redis 自動(dòng)配置 Lettuce 驅(qū)動(dòng)程序。

配置 Lettuce

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;redis-lettuce 功能以在您的項(xiàng)目中配置 Lettuce 驅(qū)動(dòng)程序:

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

要配置 Lettuce 驅(qū)動(dòng)程序,首先將 redis-lettuce 模塊添加到您的構(gòu)建中:

build.gradle

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

然后在配置文件中配置 Redis 服務(wù)器的 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 設(shè)置必須采用 Lettuce wiki 的連接 URI 部分中描述的格式

您還可以使用 redis.uris 指定多個(gè) Redis URI,在這種情況下,將改為創(chuàng)建 RedisClusterClient。

配置 Cassandra

使用 CLI

如果您使用 Micronaut CLI 創(chuàng)建項(xiàng)目,請(qǐng)?zhí)峁?nbsp;cassandra 功能以在您的項(xiàng)目中包含 Cassandra 配置:

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

配置 Liquibase

要配置 Micronaut 與 Liquibase 的集成,請(qǐng)按照這些說(shuō)明進(jìn)行操作。

配置 Flyway

要配置 Micronaut 與 Flyway 的集成,請(qǐng)按照以下說(shuō)明進(jìn)行操作


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)