Spring Boot Hikari配置

时间:2019-06-13 14:26:10

标签: java spring spring-boot hikaricp

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

documentation说: “我们建议使用dataSourceClassName代替jdbcUrl,但可以接受。”

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

如果我们使用基于jdbcUrl的配置并指定dataSourceClassName,则jdbcUrl将被忽略,如果我们未指定数据源-将创建HikariDataSource。因此,他们建议将HikariDataSource用于Spring Boot应用程序。

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

这两种配置都对我有用。

所以,我的问题是:

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

1 个答案:

答案 0 :(得分:2)

  1. HikariCP是一个连接池,也是一个非常好的连接池。我们已经在生产中的多个项目中使用了它,并且它快速且有效。

  2. 如果要使用HikariCP,请使用HikariDataSource。 Spring Boot已经开始默认使用它并推荐它(出于同样的原因:它既快速又可靠)。

如果仅将默认配置与spring.datasource.url一起使用,它将使用HikariCP,并且可以直接使用。

但是,当您手动配置数据源时,Spring Boot 2和HikariCP会有一个小问题。 HikariCP期望使用jdbcUrldataSourceClassName,但是Spring Boot配置属性使用url。 有关详情,请参见documentationthis question