org.springframework.aop.target

## 类 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, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.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 of `ObjectPool` used by overriding the `createObjectPool()` method.

  Provides many configuration properties mirroring those of the Commons Pool `GenericObjectPool` class; these properties are passed to the `GenericObjectPool` during construction. If creating a subclass of this class to change the `ObjectPool` implementation type, pass in the values of configuration properties that are relevant to your chosen implementation.

  The `testOnBorrow`, `testOnReturn` and `testWhileIdle` properties are explicitly not mirrored because the implementation of `PoolableObjectFactory` 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 underlying `ObjectPool` 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 the `ObjectPool`.
    `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 underlying `ObjectPool`.
    `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`

    - ### 从类继承的方法 java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### 构造器详细资料

    - #### 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 the `ObjectPool`.
      指定者:
        `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 underlying `ObjectPool`.
      指定者:
        `releaseTarget` 在接口中 `TargetSource`
      指定者:
        `releaseTarget` 在类中 `AbstractPoolingTargetSource`
      参数:
        `target` - object that must have been acquired from the pool via a call to `getTarget()`
      抛出:
        `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 underlying `ObjectPool` when destroying this object.
      指定者:
        `destroy` 在接口中 `org.springframework.beans.factory.DisposableBean`
      抛出:
        `Exception`

    - #### makeObject

          public org.apache.commons.pool2.PooledObject<Object> makeObject()
                                                                   throws Exception

      指定者:
        `makeObject` 在接口中 `org.apache.commons.pool2.PooledObjectFactory<Object>`
      抛出:
        `Exception`

    - #### destroyObject

          public void destroyObject(org.apache.commons.pool2.PooledObject<Object> p)
                             throws Exception

      指定者:
        `destroyObject` 在接口中 `org.apache.commons.pool2.PooledObjectFactory<Object>`
      抛出:
        `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

      指定者:
        `activateObject` 在接口中 `org.apache.commons.pool2.PooledObjectFactory<Object>`
      抛出:
        `Exception`

    - #### passivateObject

          public void passivateObject(org.apache.commons.pool2.PooledObject<Object> p)
                               throws Exception

      指定者:
        `passivateObject` 在接口中 `org.apache.commons.pool2.PooledObjectFactory<Object>`
      抛出:
        `Exception`