Spring Boot-Hikari数据库配置

时间:2018-08-28 20:22:02

标签: spring-boot jdbc hikaricp

最近致力于将代码迁移到Spring Boot 2.x,并且在配置数据源bean时遇到问题。我们有两个数据源,因此我们正在使用DataSourceBuilder手动构建DataSource bean。

对于documentation,我要设置以下属性:

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.username=sa
spring.datasource.password=

但是,当我这样做时,出现以下错误:

java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
at com.zaxxer.hikari.HikariConfig.validate(HikariConfig.java:1059) ~[HikariCP-2.7.9.jar:na]
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:109) ~[HikariCP-2.7.9.jar:na]

如果我更改设置以执行此操作:

spring.datasource.jdbcUrl=jdbc:mysql://localhost/test

然后它起作用。

如果我注释掉显式创建数据源的Bean,它也适用于单个数据源,这使我相信datasourcebuilder代码中存在问题。

此处仅提供一个显示问题的数据源的示例存储库:https://github.com/azizabah/hikari-issue

那么从配置的角度来看,SB 1.5.X和SB 2.X在具有多个数据源时发生了什么变化?

1 个答案:

答案 0 :(得分:-1)

您缺少DataSourceProperties的配置,而是直接尝试连接它。

首先,您需要遵循以下文档来完成您想做的事情: KeyManagerFactorySpi

巧合的是,有人犯了同样的错误,并在git中引发了错误,如果您希望看到相同的文档也称为解决方案: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources