类 CommonsPool2TargetSource
- java.lang.Object
- org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
- org.springframework.aop.target.AbstractPrototypeBasedTargetSource
- org.springframework.aop.target.AbstractPoolingTargetSource
- org.springframework.aop.target.CommonsPool2TargetSource
- 所有已实现的接口:
Serializable
,org.apache.commons.pool2.PooledObjectFactory<Object>
,PoolingConfig
,TargetClassAware
,TargetSource
,Aware
,BeanFactoryAware
,DisposableBean
public class CommonsPool2TargetSource extends AbstractPoolingTargetSource implements org.apache.commons.pool2.PooledObjectFactory<Object>
TargetSource
implementation that holds objects in a configurable Apache Commons2 Pool.By default, an instance of
GenericObjectPool
is created. Subclasses may change the type ofObjectPool
used by overriding thecreateObjectPool()
method.Provides many configuration properties mirroring those of the Commons Pool
GenericObjectPool
class; these properties are passed to theGenericObjectPool
during construction. If creating a subclass of this class to change theObjectPool
implementation type, pass in the values of configuration properties that are relevant to your chosen implementation.The
testOnBorrow
,testOnReturn
andtestWhileIdle
properties are explicitly not mirrored because the implementation ofPoolableObjectFactory
used by this class does not implement meaningful validation. All exposed Commons Pool properties use the corresponding Commons Pool defaults.Compatible with Apache Commons Pool 2.4, as of Spring 4.2.
- 从以下版本开始:
- 4.2
- 作者:
- Rod Johnson, Rob Harrop, Juergen Hoeller, Stephane Nicoll, Kazuki Shimizu
- 另请参阅:
GenericObjectPool
,createObjectPool()
,AbstractPoolingTargetSource.setMaxSize(int)
,setMaxIdle(int)
,setMinIdle(int)
,setMaxWait(long)
,setTimeBetweenEvictionRunsMillis(long)
,setMinEvictableIdleTimeMillis(long)
, 序列化表格
字段概要
从类继承的字段 org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
logger
构造器概要
构造器 构造器 说明 CommonsPool2TargetSource()
Create a CommonsPoolTargetSource with default settings.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
activateObject(org.apache.commons.pool2.PooledObject<Object> p)
protected org.apache.commons.pool2.ObjectPool
createObjectPool()
Subclasses can override this if they want to return a specific Commons pool.protected void
createPool()
Creates and holds an ObjectPool instance.void
destroy()
Closes the underlyingObjectPool
when destroying this object.void
destroyObject(org.apache.commons.pool2.PooledObject<Object> p)
int
getActiveCount()
Return the number of active objects in the pool.int
getIdleCount()
Return the number of idle objects in the pool.int
getMaxIdle()
Return the maximum number of idle objects in the pool.long
getMaxWait()
Return the maximum waiting time for fetching an object from the pool.long
getMinEvictableIdleTimeMillis()
Return the minimum time that an idle object can sit in the pool.int
getMinIdle()
Return the minimum number of idle objects in the pool.Object
getTarget()
Borrows an object from theObjectPool
.long
getTimeBetweenEvictionRunsMillis()
Return the time between eviction runs that check idle objects.boolean
isBlockWhenExhausted()
Specify if the call should block when the pool is exhausted.org.apache.commons.pool2.PooledObject<Object>
makeObject()
void
passivateObject(org.apache.commons.pool2.PooledObject<Object> p)
void
releaseTarget(Object target)
Returns the specified object to the underlyingObjectPool
.void
setBlockWhenExhausted(boolean blockWhenExhausted)
Set whether the call should bock when the pool is exhausted.void
setMaxIdle(int maxIdle)
Set the maximum number of idle objects in the pool.void
setMaxWait(long maxWait)
Set the maximum waiting time for fetching an object from the pool.void
setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
Set the minimum time that an idle object can sit in the pool before it becomes subject to eviction.void
setMinIdle(int minIdle)
Set the minimum number of idle objects in the pool.void
setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
Set the time between eviction runs that check idle objects whether they have been idle for too long or have become invalid.boolean
validateObject(org.apache.commons.pool2.PooledObject<Object> p)
从类继承的方法 org.springframework.aop.target.AbstractPoolingTargetSource
getMaxSize, getPoolingConfigMixin, setBeanFactory, setMaxSize
从类继承的方法 org.springframework.aop.target.AbstractPrototypeBasedTargetSource
destroyPrototypeInstance, newPrototypeInstance, writeReplace
从类继承的方法 org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
copyFrom, equals, getBeanFactory, getTargetBeanName, getTargetClass, hashCode, isStatic, setTargetBeanName, setTargetClass, toString
构造器详细资料
CommonsPool2TargetSource
public CommonsPool2TargetSource()
Create a CommonsPoolTargetSource with default settings. Default maximum size of the pool is 8.- 另请参阅:
AbstractPoolingTargetSource.setMaxSize(int)
,GenericObjectPoolConfig.setMaxTotal(int)
方法详细资料
setMaxIdle
public void setMaxIdle(int maxIdle)
Set the maximum number of idle objects in the pool. Default is 8.- 另请参阅:
GenericObjectPool.setMaxIdle(int)
getMaxIdle
public int getMaxIdle()
Return the maximum number of idle objects in the pool.
setMinIdle
public void setMinIdle(int minIdle)
Set the minimum number of idle objects in the pool. Default is 0.- 另请参阅:
GenericObjectPool.setMinIdle(int)
getMinIdle
public int getMinIdle()
Return the minimum number of idle objects in the pool.
setMaxWait
public void setMaxWait(long maxWait)
Set the maximum waiting time for fetching an object from the pool. Default is -1, waiting forever.- 另请参阅:
BaseGenericObjectPool.setMaxWaitMillis(long)
getMaxWait
public long getMaxWait()
Return the maximum waiting time for fetching an object from the pool.
setTimeBetweenEvictionRunsMillis
public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis)
Set the time between eviction runs that check idle objects whether they have been idle for too long or have become invalid. Default is -1, not performing any eviction.- 另请参阅:
BaseGenericObjectPool.setTimeBetweenEvictionRunsMillis(long)
getTimeBetweenEvictionRunsMillis
public long getTimeBetweenEvictionRunsMillis()
Return the time between eviction runs that check idle objects.
setMinEvictableIdleTimeMillis
public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis)
Set the minimum time that an idle object can sit in the pool before it becomes subject to eviction. Default is 1800000 (30 minutes).Note that eviction runs need to be performed to take this setting into effect.
- 另请参阅:
setTimeBetweenEvictionRunsMillis(long)
,BaseGenericObjectPool.setMinEvictableIdleTimeMillis(long)
getMinEvictableIdleTimeMillis
public long getMinEvictableIdleTimeMillis()
Return the minimum time that an idle object can sit in the pool.
setBlockWhenExhausted
public void setBlockWhenExhausted(boolean blockWhenExhausted)
Set whether the call should bock when the pool is exhausted.
isBlockWhenExhausted
public boolean isBlockWhenExhausted()
Specify if the call should block when the pool is exhausted.
createPool
protected final void createPool()
Creates and holds an ObjectPool instance.- 指定者:
createPool
在类中AbstractPoolingTargetSource
- 另请参阅:
createObjectPool()
createObjectPool
protected org.apache.commons.pool2.ObjectPool createObjectPool()
Subclasses can override this if they want to return a specific Commons pool. They should apply any configuration properties to the pool here.Default is a GenericObjectPool instance with the given pool size.
- 返回:
- an empty Commons
ObjectPool
. - 另请参阅:
GenericObjectPool
,AbstractPoolingTargetSource.setMaxSize(int)
getTarget
public Object getTarget() throws Exception
Borrows an object from theObjectPool
.- 指定者:
getTarget
在接口中TargetSource
- 指定者:
getTarget
在类中AbstractPoolingTargetSource
- 返回:
- an object from the pool
- 抛出:
Exception
- we may need to deal with checked exceptions from pool APIs, so we're forgiving with our exception signature
releaseTarget
public void releaseTarget(Object target) throws Exception
Returns the specified object to the underlyingObjectPool
.- 指定者:
releaseTarget
在接口中TargetSource
- 指定者:
releaseTarget
在类中AbstractPoolingTargetSource
- 参数:
target
- object that must have been acquired from the pool via a call togetTarget()
- 抛出:
Exception
- to allow pooling APIs to throw exception- 另请参阅:
AbstractPoolingTargetSource.getTarget()
getActiveCount
public int getActiveCount() throws UnsupportedOperationException
从接口复制的说明:PoolingConfig
Return the number of active objects in the pool.- 指定者:
getActiveCount
在接口中PoolingConfig
- 抛出:
UnsupportedOperationException
- if not supported by the pool
getIdleCount
public int getIdleCount() throws UnsupportedOperationException
从接口复制的说明:PoolingConfig
Return the number of idle objects in the pool.- 指定者:
getIdleCount
在接口中PoolingConfig
- 抛出:
UnsupportedOperationException
- if not supported by the pool
destroy
public void destroy() throws Exception
Closes the underlyingObjectPool
when destroying this object.- 指定者:
destroy
在接口中DisposableBean
- 抛出:
Exception
- in case of shutdown errors. Exceptions will get logged but not rethrown to allow other beans to release their resources as well.
makeObject
public org.apache.commons.pool2.PooledObject<Object> makeObject() throws Exception
destroyObject
public void destroyObject(org.apache.commons.pool2.PooledObject<Object> p) throws Exception
validateObject
public boolean validateObject(org.apache.commons.pool2.PooledObject<Object> p)
- 指定者:
validateObject
在接口中org.apache.commons.pool2.PooledObjectFactory<Object>
activateObject
public void activateObject(org.apache.commons.pool2.PooledObject<Object> p) throws Exception
passivateObject
public void passivateObject(org.apache.commons.pool2.PooledObject<Object> p) throws Exception