【问题标题】:Spring Boot - Hikari Database ConfigurationSpring Boot - Hikari 数据库配置
【发布时间】:2019-02-03 13:09:26
【问题描述】:

最近致力于将代码迁移到 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 之间发生了什么变化?

【问题讨论】:

  • 您的问题到底是什么?
  • @MarkRotteveel - 在底部添加了带有问题的编辑。

标签: spring-boot jdbc hikaricp


【解决方案1】:

您缺少 DataSourceProperties 的配置并直接尝试连接它。

您首先需要遵循以下文档来实现您想要做的事情: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources

顺便说一句,有人犯了同样的错误,并在 git 中作为 bug 提出,如果您愿意,您可以看到相同的文档被称为解决方案: https://github.com/spring-projects/spring-boot/issues/12758

【讨论】:

  • 请在您的回答中提供解决方案,链接只能用于支持信息或更多详细信息。答案不应该是“你做错了,看看这个链接如何解决这个问题”。
  • @jazz - 继续并标记为答案,尽管很高兴指出这与您在 SB 1.5.X 中的操作方式有所不同。
猜你喜欢
  • 2019-10-28
  • 2022-09-29
  • 1970-01-01
  • 2019-04-17
  • 1970-01-01
  • 2017-08-10
  • 2020-10-04
  • 2015-03-21
  • 2018-12-30
相关资源
最近更新 更多