2.6. 配置多个 JDBC 数据源
您可以使用 Agroal 为 Quarkus 应用程序配置多个 JDBC 数据源。
注意
使用 Hibernate ORM 扩展时,您可以将多个持久数据存储单元添加到应用程序中。对于每个持久性单元,您可以指向您选择的数据源。
先决条件
- 您有一个 Quarkus Maven 项目。
- 您有多个 JDBC 数据源。
流程
- 进入 Quarkus 项目目录。
在
src/main/resources/application.properties文件中,为每个数据源设置以下属性:以下示例显示了 3 JDBC 数据源的完整配置:
quarkus.datasource.db-kind=h21 quarkus.datasource.username=username-default2 quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:default3 quarkus.datasource.jdbc.min-size=34 quarkus.datasource.jdbc.max-size=135 quarkus.datasource.users.db-kind=h26 quarkus.datasource.users.username=username1 quarkus.datasource.users.jdbc.url=jdbc:h2:tcp://localhost/mem:users quarkus.datasource.users.jdbc.min-size=1 quarkus.datasource.users.jdbc.max-size=11 quarkus.datasource.inventory.db-kind=h2 quarkus.datasource.inventory.username=username2 quarkus.datasource.inventory.jdbc.url=jdbc:h2:tcp://localhost/mem:inventory quarkus.datasource.inventory.jdbc.min-size=2 quarkus.datasource.inventory.jdbc.max-size=12通过将
@Inject注释添加到其中一个类属性,将多个数据源注入到其中。当您为应用程序配置多个数据源时,请确保将io.quarkus.agroal.DataSource限定程序添加为每个DataSource类的值:import javax.inject.Inject; import io.agroal.api.AgroalDataSource; import io.quarkus.agroal.DataSource; @Inject AgroalDataSource defaultDataSource; @Inject @DataSource("users") AgroalDataSource usersDataSource; @Inject @DataSource("inventory") AgroalDataSource inventoryDataSource;