1. <dependency>
    2. <groupId>org.apache.commons</groupId>
    3. <artifactId>commons-pool2</artifactId>
    4. <version>2.4.3</version>
    5. </dependency>

    使用 GenericObjectPool,有必要了解一下 GenericObjectPoolConfig,下面将说明一下其配置参数

    maxWaitMillis:当连接池资源用尽后,调用者获取连接时的最大等待时间(单位 :毫秒),默认值 DEFAULT_MAX_WAIT_MILLIS = -1L, 永不超时
    minEvictableIdleTimeMillis:连接的最小空闲时间,达到此值后该空闲连接可能会被移除(还需看是否已达最大空闲连接数)
    testOnCreate:在创建对象时检测对象是否有效(true : 是),配置true会降低性能。默认值 DEFAULT_TEST_ON_CREATE = false
    testOnBorrow:在从对象池获取对象时是否检测对象有效(true : 是), 配置true会降低性能。默认值 DEFAULT_TEST_ON_BORROW = false
    testOnReturn:在向对象池中归还对象时是否检测对象有效(true : 是), 配置true会降低性能;
    默认值 DEFAULT_TEST_ON_RETURN = false
    testWhileIdle:在检测空闲对象线程检测到对象不需要移除时,是否检测对象的有效性。建议配置为true,不影响性能,并且保证安全性;
    默认值 DEFAULT_TEST_WHILE_IDLE = false

    参考:https://blog.csdn.net/u012855229/article/details/100866550