我正在为Spring Boot应用程序配置HikariCP,数据库是Postgresql。
documentation说:
“我们建议使用dataSourceClassName
代替jdbcUrl
,但可以接受。”
但是,下一行说:
“注意:Spring Boot自动配置用户,您需要使用基于jdbcUrl
的配置。”
如果我们使用基于jdbcUrl
的配置并指定dataSourceClassName
,则jdbcUrl
将被忽略,如果我们未指定数据源-将创建HikariDataSource
。因此,他们建议将HikariDataSource
用于Spring Boot应用程序。
如果我们使用dataSourceClassName
-它将使用给定的属性创建(在我的情况下是PGSimpleDataSource
,其祖先是BaseDataSource
)。
这两种配置都对我有用。
所以,我的问题是:
HikariDataSource
和PGSimpleDataSource
(或推荐的任何其他)之间有什么区别? jdbcUrl
的配置(并因此使用HikariDataSource
)?答案 0 :(得分:2)
HikariCP是一个连接池,也是一个非常好的连接池。我们已经在生产中的多个项目中使用了它,并且它快速且有效。
如果要使用HikariCP,请使用HikariDataSource
。 Spring Boot已经开始默认使用它并推荐它(出于同样的原因:它既快速又可靠)。
如果仅将默认配置与spring.datasource.url
一起使用,它将使用HikariCP,并且可以直接使用。
但是,当您手动配置数据源时,Spring Boot 2和HikariCP会有一个小问题。 HikariCP期望使用jdbcUrl
或dataSourceClassName
,但是Spring Boot配置属性使用url
。
有关详情,请参见documentation或this question。