PooledObjectFactory
是一个接口,定义如下:
makeObject()
当对象池对象不够用的时候,需要调用此方法创建一个新对象放入到池子里。
destroyObject()
不管什么原因(丢弃、驱逐、检验失败、异常等),当对象需要销毁时,都会调用此方法进行销毁处理。
validateObject()
对象进行检验时,都会调用此方法。
一共4种检验:
- testOnCreate
- testOnBorrow
- testOnReturn
- testWhileIdle
activateObject()
当对象借出后,必须调用此方法激活对象。
passivateObject()
当对象归还时,必须调用此方法钝化对象。
对象池使用
我们要基于commons-pool构建自己的线程池、连接池等,只需要实现PooledObjectFactory
接口即可,如下代码为一个简单的连接池实现: