Spring Boot 2:如何使用 application.properties 文件配置 HikariCP

Posted

技术标签:

【中文标题】Spring Boot 2:如何使用 application.properties 文件配置 HikariCP【英文标题】:Spring Boot 2: How to configure HikariCP using application.properties file 【发布时间】:2018-08-19 13:29:43 【问题描述】:

我对 Spring 和 Spring Boot 比较陌生,但我似乎找不到有关如何使用 Spring Boot、Flyway 和 Spring Boot JPA 创建一个可以在我的机器上实际运行的应用程序的指南。我总是遇到同样的问题:

Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: dataSource or dataSourceClassName or jdbcUrl is required.

我正在尝试通过 application.properties 文件完全配置 HikariCP,但我似乎找不到方法。非常感谢任何帮助。

我的完整堆栈跟踪和相关的 Java 代码和 application.properties 文件都在这个要点中:

https://gist.github.com/anonymous/cb309a836ddae36f5e401697f763dde5

【问题讨论】:

【参考方案1】:

删除不需要的 PersistenceConfiguration 类。 Spring Boot 自动配置数据源供您和 flyway 使用。

HikariCP 现在是 Spring Boot 2 中的默认池实现。

同时从 application.properties 中删除所有与数据源相关的属性,spring.datasource.url 除外。

【讨论】:

成功了,非常感谢!我正在学习使用 Spring 1.x 的 Pluralsight 教程,因此很难了解要更改哪些内容才能与 Spring Boot 2.x 兼容。【参考方案2】:

您可以更新 application.properties 以使用

spring.datasource.jdbc-url=...
datasource.flyway.jdbc-url=...

而不是

.url=

我也在学习 Pluralsight 课程构建您的第一个 Spring Boot 应用程序

我在另一个*** post 中找到了答案。 Spring Boot 2 将默认的 JDBC 连接池从 Tomcat 更改为 HikariCP 以提高性能。 HikariCP 需要不同的属性。

在本教程中,多个数据源是可选的,这就是当您删除 PersistenceConfiguration.java 时它可以工作的原因

【讨论】:

以上是关于Spring Boot 2:如何使用 application.properties 文件配置 HikariCP的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot:如何使用 application.properties 设置日志记录级别?

如何在 application.properties 文件中的 Spring Boot 应用程序中配置 HikariCP?

如何使用 Spring Boot 配置文件

如何在 spring-boot 配置中加载 application.yaml 配置以进行硒测试

如何在 Spring Boot 的 application.yml 中定义默认空值

如何获取spring boot application.yml里面的值