HikariCP是数据库连接池,而且号称史上最快的。在Spring Boot2.0版本中,由于HikariCP提供了卓越的性能,默认数据库池技术已从Tomcat Pool切换到HikariCP。spring-boot-starter-jdbc和spring-boot-starter-data-jpa默认解析HikariCP依赖,spring.datasource.type属性将HikariDataSource作为默认值。
(1)代码量非常小
对于连接池来讲,代码越少,占用CPU和内存越少,Bug出现概率也就越小,执行率高。这就是为什么HikariCP受欢迎的原因之一。
(2)稳定性,可靠性强
(3)速度快
优化并精简了字节码,可以更好地并发集合类实现ConcurrentBag,使用FastList替代ArrayList等。
如果我们使用的是Spring Boot2.0或者之后的版本,不需要单独在pom.xml文件中引入HikariCP依赖,因为默认情况下spring-boot-starter-jdbc或者spring-boot-starter-data-jpa会依赖进来。
对于Hikari连接池的配置,可通过使用spring.datasource.type并在application.properties文件中为其分配连接池实现的完全限定名称来启用它,如下所示:
如果使用的是Spring Boot2.0及以上版本,Spring Boot会使用HikariDataSource作为默认选择,不需要配置上面的行。
要配置Hikari特定的连接池设置,Spring Boot提供了spring.datasource.hikari.*在application.properties文件中使用的前缀。我们将在这里讨论一些常用的配置。
(1)connectionTimeout
connectionTimeout是客户端等待连接池连接的最大毫秒数,需要将其配置如下:
(2)minimumIdle
minimumIdle是HikariCP在连接池中维护的最小空闲连接数,它配置如下:
(3)maximumPoolSize
maximumPoolSize配置最大池大小,它配置如下:
(4)idleTimeout
idleTimeout是允许连接在连接池中空闲的最长时间(以毫秒为单位),它配置如下:
(5)maxLifetime
maxLifetime是池中连接关闭后的最长生命周期(以毫秒为单位),它配置如下:
(6)autoCommit
autoCommit配置从池中返回的连接的默认自动提交行为,默认值为true:
完整的配置示例如下:
本节只是简单地介绍了HikariCP的基础知识,其具体使用与Druid连接池类似。