SpringBoot 2.0 开始推 HikariCP ,将默认的数据库连接池从 tomcat jdbc pool 改为了 hikari , HikariCP 在性能和并发方面确实表现不俗(号称最快的连接池)。
如果你使用 spring-boot-starter-jdbc 或 spring-boot-starter-data-jpa ,会自动添加对 HikariCP 的依赖,也就是说此时使用 HikariCP 。当然你也可以强制使用其它的连接池技术,可以通过在 application.properties 或 application.yml 中配置 spring.datasource.type 指定。
基本配置
因为已经默认使用 HikariCP,所以只需要在 yaml 中添加数据库配置即可:
url: jdbc:mysql://localhost:3306?useSSL=false
username: root
password: 1234
HikariCP 默认配置
主要参数是在 com.zaxxer.hikari.HikariConfig 中初始化的,部分参数是在 com.zaxxer.hikari.pool.PoolBase 中初始化的。
springboot的HikariDataSource默认配置的默认值如下
name构造器默认值默认配置validate之后的值validate重置
minIdle
-1
10
minIdle<0或者minIdle>maxPoolSize,则被重置为maxPoolSize
maxPoolSize
-1
10
如果maxPoolSize小于1,则会被重置。当minIdle<=0被重置为DEFAULT_POOL_SIZE则为10;如果minIdle>0则重置为minIdle的值
maxLifetime
MINUTES.toMillis(30) = 1800000
1800000
如果不等于0且小于30秒则会被重置回30分钟
connectionTimeout
SECONDS.toMillis(30) = 30000
30000
如果小于250毫秒,则被重置回30秒
validationTimeout