终于理解Spring Boot 为什么如此青睐HikariCP了,图解的太透彻了!

作者:微信小助手

发布时间:2021-07-27T15:21:03

前言

现在已经有很多公司在使用HikariCP了,HikariCP还成为了SpringBoot默认的连接池,伴随着SpringBoot和微服务,HikariCP 必将迎来广泛的普及。

下面陈某带大家从源码角度分析一下HikariCP为什么能够被Spring Boot 青睐,文章目录如下:

目录

零、类图和流程图

开始前先来了解下HikariCP获取一个连接时类间的交互流程,方便下面详细流程的阅读。

获取连接时的类间交互:

图1

一、主流程1:获取连接流程

HikariCP获取连接时的入口是HikariDataSource里的getConnection方法,现在来看下该方法的具体流程:

主流程1

上述为HikariCP获取连接时的流程图,由图1可知,每个datasource对象里都会持有一个HikariPool对象,记为pool,初始化后的datasource对象pool是空的,所以第一次getConnection的时候会进行实例化pool属性(参考主流程1),初始化的时候需要将当前datasource里的config属性传过去,用于pool的初始化,最终标记sealed,然后根据pool对象调用getConnection方法(参考流程1.1),获取成功后返回连接对象。

二、主流程2:初始化池对象