最近致力于将代码迁移到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在具有多个数据源时发生了什么变化?
答案 0 :(得分:-1)
您缺少DataSourceProperties的配置,而是直接尝试连接它。
首先,您需要遵循以下文档来完成您想做的事情:
KeyManagerFactorySpi
巧合的是,有人犯了同样的错误,并在git中引发了错误,如果您希望看到相同的文档也称为解决方案: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources