druid 初始化连接池并获取连接总结
之前几天由于时间有限,看到的代码都比较片面,虽然初始化连接池的代码各部分都看了七七八八,但是整体的流程和各部分的关系了解的还不够多,今天就通过流程图的方式总结下整体的流程,帮助自己更清晰的理解代码逻辑。下面是 init()方法的流程。
接下来如果有 filter 就调用 filter 的 dataSource_connect(this, maxWaitMillis),通过责任链模式调用一系列 filter 后再返回可用连接。
复制代码
最终也是调用 getConnectionDirect(),接下来是 getConnectionDirect()的流程图。
在连接可用性检测的地方逻辑还是非常复杂的,最终的判断方式都是执行设置的连接校验语句
复制代码
整个逻辑已经梳理清楚,接下来就是对自己一些不明白的逻辑点进行一些理解和查阅。
评论