Spring Boot Hikari 配置

Posted

技术标签:

【中文标题】Spring Boot Hikari 配置【英文标题】:Spring Boot Hikari configuration 【发布时间】:2019-10-28 04:18:30 【问题描述】:

我正在为 Spring Boot 应用程序配置 HikariCP,数据库是 Postgresql。

documentation 说: “我们建议使用 dataSourceClassName 而不是 jdbcUrl,但两者都可以接受。”

但是,下一行说: "注意:Spring Boot自动配置用户,需要使用基于jdbcUrl的配置。"

如果我们使用基于jdbcUrl 的配置并指定dataSourceClassName,那么jdbcUrl 将被忽略,如果我们不指定数据源-HikariDataSource 将被创建。所以他们建议在 Spring Boot 应用程序中使用 HikariDataSource

如果我们使用dataSourceClassName - 它将使用给定的属性创建(在我的例子中,它是PGSimpleDataSource 及其祖先BaseDataSource)。

这两种配置都适合我。

所以,我的问题是:

    HikariDataSourcePGSimpleDataSource(或任何其他推荐)有什么区别? 为什么建议在 Spring Boot 中使用基于 jdbcUrl 的配置(因此建议使用 HikariDataSource)?

【问题讨论】:

【参考方案1】:

    HikariCP 是一个连接池,非常好。我们已经在多个生产项目中使用它,它速度快而且效果很好。

    如果您想使用 HikariCP,请使用 HikariDataSource。 Spring Boot 已开始将其用作默认设置并推荐它(出于相同的原因:它既快速又可靠)。

如果您只使用 spring.datasource.url 的默认配置,它将使用 HikariCP 并且应该可以开箱即用。

但是,当您手动配置数据源时,Spring Boot 2 和 HikariCP 存在一个小问题。 HikariCP 需要 jdbcUrldataSourceClassName,但 Spring Boot 配置属性使用 url。 请参阅documentation 或this question。

【讨论】:

是的,这对我来说听起来很合理,但是为什么他们对 Spring Boot 和其他应用程序有不同的 DataSources 建议,同时在一个包中提供所有这些?

以上是关于Spring Boot Hikari 配置的主要内容,如果未能解决你的问题,请参考以下文章