commons-pool2-中的一些配置
/**
* 连接失效检测相关
*/
// 空闲时进行连接测试,会启动异步evict线程进行失效检测
setTestWhileIdle(true);
// 连接的空闲的最长时间,需要testWhileIdle为true,默认5分钟
setMinEvictableIdleTimeMillis(1000 * 60 * 5);
// 失效检测时间,需要testWhileIdle为true,默认5分钟
setTimeBetweenEvictionRunsMillis(1000 * 60 * 5);
// 每次检查连接的数量,需要testWhileIdle为true
setNumTestsPerEvictionRun(100);
// 获取连接时检测连接的有效性
setTestOnBorrow(true);
// 返还连接时检测连接的有效性
setTestOnReturn(false);
/**
* 连接池中连接数量相关
*/
// 每个key对应的池最大连接数
setMaxTotalPerKey(20);
// 总连接数
setMaxTotal(40);
// 每个key对应的连接池最小空闲连接数
setMinIdlePerKey(5);
// 每个key对应的连接池最大空闲连接数
setMaxIdlePerKey(20);
/**
* 连接池无可用连接时相关
*/
// 设置为true时,池中无可用连接,borrow时进行阻塞;为false时,当池中无可用连接,抛出NoSuchElementException异常
setBlockWhenExhausted(true);
// 多个任务需要borrow连接时,阻塞时是否采用公平策略,为true时采用,按照先申请先获得的策略进行borrow操作
setFairness(true);
// 最大等待时间,当需要borrow一个连接时,最大的等待时间,如果超出时间,抛出NoSuchElementException异常,-1为不限制时间
setMaxWaitMillis(-1);