12.2 数据访问配置
本表总结了为启用这些模块而需要添加到构建中的配置模块和依赖:
表 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 Bean |
io.micronaut.groovy:micronaut-hibernate-gorm | 为 Groovy 应用程序配置 Hibernate 的 GORM |
io.micronaut.mongodb:micronaut-mongo-reactive | 配置 MongoDB Reactive 驱动 |
io.micronaut.groovy:micronaut-mongo-gorm | 为 Groovy 应用程序配置 MongoDB 的 GORM |
io.micronaut.neo4j:micronaut-neo4j-bolt | 为 Neo4j 配置 Bolt Java 驱动 |
io.micronaut.groovy:micronaut-neo4j-gorm | 为 Groovy 应用程序配置 Neo4j 的 GORM |
io.micronaut.sql:micronaut-vertx-mysql-client | 配置响应式 MySQL 客户端 |
io.micronaut.sql:micronaut-vertx-pg-client | 配置响应式 Postgres 客户端 |
io.micronaut.redis:micronaut-redis-lettuce | 为 Redis 配置 Lettuce 驱动 |
io.micronaut.cassandra:micronaut-cassandra | 配置用于 Cassandra 的 Datastax Java 驱动 |
例如,要添加对 MongoDB 的支持,请添加以下依赖:
build.gradle
compile "io.micronaut.mongodb:micronaut-mongo-reactive"
对于 Groovy 用户,Micronaut 为 GORM 提供特殊支持。
使用 Hibernate 的 GORM 时,不能同时依赖 hibernate-jpa
和 hibernate-gorm
。
以下各节将详细介绍配置选项和每种实现所暴露的 Bean。
12.2.1 配置 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>io.micronaut.sql</groupId>
<artifactId>micronaut-jdbc-ucp</artifactId>
<scope>runtime</scope>
</dependency>
此外,在构建过程中添加 JDBC 驱动程序依赖关系。例如,添加 H2 内存数据库:
- Gradle
- Maven
runtimeOnly("com.h2database:h2")
更多信息,参阅 Micronaut SQL 库项目中的配置 JDBC 部分。
12.2.2 配置 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>
更多信息,参阅 Micronaut SQL 库 项目中的配置 Hibernate 部分。
使用 Hibernate 的 GORM
对于 Groovy 用户和熟悉 Grails 框架的用户,可以使用 Hibernate 的 GORM 特殊支持。要使用 Hibernate 的 GORM,就不要使用 Micronaut 内置的 SQL 支持或 hibernate-jpa
依赖项,因为 GORM 本身负责创建 DataSource
、SessionFactory
等。
使用 CLI
如果使用 Micronaut CLI 创建项目,请提供 hibernate-gorm
特性,以便在项目中包含 GORM、基本连接池配置和默认 H2 数据库驱动程序:
$ mn create-app my-app --features hibernate-gorm
参阅 Micronaut for Groovy 用户指南中的 GORM 模块部分。
12.2.3 配置 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:
配置 MongoDB 服务器
- Properties
- Yaml
- Toml
- Groovy
- Hoon
- 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 连接字符串格式。
这样,一个非阻塞的响应式流的 MongoClient 就可以用于依赖注入了。
要使用阻塞型驱动程序,请在构建过程中添加对 mongo-java-driver 的依赖:
runtimeOnly "org.mongodb:mongo-java-driver"
然后,阻塞的 MongoClient 将可用于注入。
有关在 Micronaut 中配置和使用 MongoDB 的更多信息,参阅 Micronaut MongoDB 文档。
12.2.4 配置 Neo4j
Micronaut 专门支持为流行的 Neo4j Graph 数据库自动配置 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>
然后在配置文件(如 application.yml
)中配置 Neo4j 服务器的 URI:
配置 neo4j.uri
- Properties
- Yaml
- Toml
- Groovy
- Hoon
- 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。
有关在 Micronaut 中配置和使用 Neo4j 的更多信息,参阅 Micronaut Neo4j 文档。
12.2.5 配置 Postgres
Micronaut 支持使用 vertx-pg-client 连接 Postgres 的反应式非阻塞客户端,它可以用单线程处理多个数据库连接。
配置响应式 Postgres 客户端
使用 CLI
如果使用 Micronaut CLI 创建项目,请使用 vertx-pg-client
功能在项目中配置响应式 Postgres 客户端:
$ mn create-app my-app --features vertx-pg-client
要配置响应式 Postgres 客户端,首先要在构建过程中添加 vertx-pg-client
模块:
build.gradle
compile "io.micronaut.sql:micronaut-vertx-pg-client"
更多信息,参阅 Micronaut SQL 库项目中的配置响应式 Postgres 部分。
12.2.6 配置 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"
然后在配置文件(如 application.yml
)中配置 Redis 服务器的 URI:
配置 redis.uri
- Properties
- Yaml
- Toml
- Groovy
- Hoon
- 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 维基中连接 URI 部分所描述的格式一致。
你也可以使用 redis.uris
指定多个 Redis URI,在这种情况下,会创建一个 RedisClusterClient
。
更多信息和文档,参阅 Micronaut Redis 文档。
12.2.7 配置 Cassandra
使用 CLI
如果使用 Micronaut CLI 创建项目,请提供 cassandra
特性,以便在项目中包含 Cassandra 配置:
$ mn create-app my-app --features cassandra
更多信息,参阅 Micronaut Cassandra 模块文档。
12.2.8 配置 Liquibase
要配置 Micronaut 与 Liquibase 的集成,请遵循这些说明。
12.2.9 配置 Flyway
要配置 Micronaut 与 Flyway 的集成,请遵循这些说明。