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
)。
这两种配置都适合我。
所以,我的问题是:
HikariDataSource
和PGSimpleDataSource
(或任何其他推荐)有什么区别?
为什么建议在 Spring Boot 中使用基于 jdbcUrl
的配置(因此建议使用 HikariDataSource
)?
【问题讨论】:
【参考方案1】:HikariCP 是一个连接池,非常好。我们已经在多个生产项目中使用它,它速度快而且效果很好。
如果您想使用 HikariCP,请使用 HikariDataSource
。 Spring Boot 已开始将其用作默认设置并推荐它(出于相同的原因:它既快速又可靠)。
如果您只使用 spring.datasource.url
的默认配置,它将使用 HikariCP 并且应该可以开箱即用。
但是,当您手动配置数据源时,Spring Boot 2 和 HikariCP 存在一个小问题。 HikariCP 需要 jdbcUrl
或 dataSourceClassName
,但 Spring Boot 配置属性使用 url
。
请参阅documentation 或this question。
【讨论】:
是的,这对我来说听起来很合理,但是为什么他们对 Spring Boot 和其他应用程序有不同的 DataSources 建议,同时在一个包中提供所有这些?以上是关于Spring Boot Hikari 配置的主要内容,如果未能解决你的问题,请参考以下文章