Micronaut 数据访问配置
下表总结了要添加到构建中以启用它们的配置模块和依赖项:
依赖 | 描述 |
---|---|
|
使用 Commons DBCP 配置 SQL 数据源 |
|
使用 Hikari 连接池配置 SQL 数据源 |
|
使用 Tomcat 连接池配置 SQL 数据源 |
|
配置 Hibernate/JPA EntityManagerFactory beans |
|
为 Groovy 应用程序配置 GORM for Hibernate |
|
配置 MongoDB 响应式驱动程序 |
|
Configures GORM for MongoDB for Groovy applications |
|
Configures the Bolt Java Driver for Neo4j |
|
Configures GORM for Neo4j for Groovy applications |
|
Configures the Reactive MySQL Client |
|
Configures the Reactive Postgres Client |
|
|
|
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 |
|
|
Gradle | Maven |
|
|
Gradle | Maven |
|
|
Gradle | Maven |
|
|
此外,将 JDBC 驱动程序依赖项添加到您的构建中。例如添加 H2 内存数据库:
Gradle | Maven |
|
|
配置 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 |
|
|
在 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 |
|
|
然后在你的配置文件(例如 application.yml)中配置 MongoDB 服务器的 URI:
Configuring a MongoDB server
Properties | Yaml | Toml | Groovy | Hocon | JSON |
|
|
|
|
|
|
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 |
|
|
然后在配置文件中配置 Neo4j 服务器的 URI(例如 application.yml):
Configuring neo4j.uri
Properties | Yaml | Toml | Groovy | Hocon | JSON |
|
|
|
|
|
|
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 设置必须采用 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 的集成,请按照以下说明进行操作
更多建议: