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 配置中加载 application.yaml 配置以进行硒测试