GenericObjectPool

dbcp中几个重要实现类之间的关系和连接池参数简介

我只是一个虾纸丫 提交于 2019-12-04 17:38:05
如下图 1 所示主要分析的是 BasicDataSource 、 GenericObjectPool 、 DriverConnectionFactory 、 PoolableConnectionFactory 和 PoolingDataSource 类。 图 1 dbcp 几个重要实现类的关系 我们直接使用的最多的就是 BasicDataSource 类了,这个类主要是设置一些数据库连接池的参数,不过这些参数基本都是通过 GenericObjectPool 的实例来实现的。 在 BasicDataSource 中最重要的方法就是 createDataSource 方法了,这个方法中回创建一个 GenericObjectPool 实例来管理数据库连接( AbandonedObjectPool 类已经不被推荐了,所以这里不考虑),最后这个方法返回的是 PoolingDataSource 的实例,这个类主要是对 GenericObjectPool 和数据库连接的一些代理实现。下面是 createDataSource 方法的实现。 protected synchronized DataSource createDataSource() throws SQLException { // 如果已经创建了DataSource则直接返回 if (dataSource != null) {