作者:微信小助手
发布时间:2021-07-27T15:21:03
现在已经有很多公司在使用HikariCP了,HikariCP还成为了SpringBoot默认的连接池,伴随着SpringBoot和微服务,HikariCP 必将迎来广泛的普及。
下面陈某带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐,文章目录如下:
开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。
获取连接时的类间交互:
HikariCP获取连接时的入口是HikariDataSource
里的getConnection
方法,现在来看下该方法的具体流程:
上述为HikariCP获取连接时的流程图,由图1可知,每个datasource
对象里都会持有一个HikariPool
对象,记为pool,初始化后的datasource对象pool是空的,所以第一次getConnection
的时候会进行实例化pool
属性(参考主流程1
),初始化的时候需要将当前datasource里的config属性
传过去,用于pool的初始化,最终标记sealed
,然后根据pool对象调用getConnection
方法(参考流程1.1
),获取成功后返回连接对象。