/**
* 鏈接失效檢測相關
*/
// 空閒時進行鏈接測試,會啓動異步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);