程序包 infra.aop.target

类 AbstractPoolingTargetSource

所有已实现的接口:
PoolingConfig, TargetClassAware, TargetSource, infra.beans.factory.Aware, infra.beans.factory.BeanFactoryAware, infra.beans.factory.DisposableBean, Serializable
直接已知子类:
CommonsPool2TargetSource

public abstract class AbstractPoolingTargetSource extends AbstractPrototypeTargetSource implements PoolingConfig, infra.beans.factory.DisposableBean
Abstract base class for pooling TargetSource implementations which maintain a pool of target instances, acquiring and releasing a target object from the pool for each method invocation. This abstract base class is independent of concrete pooling technology; see the subclass CommonsPool2TargetSource for a concrete example.

Subclasses must implement the getTarget() and releaseTarget(java.lang.Object) methods based on their chosen object pool. The AbstractPrototypeTargetSource.newPrototypeInstance() method inherited from AbstractPrototypeTargetSource can be used to create objects in order to put them into the pool.

Subclasses must also implement some of the monitoring methods from the PoolingConfig interface. The getPoolingConfigMixin() method makes these stats available on proxied objects through an IntroductionAdvisor.

This class implements the DisposableBean interface in order to force subclasses to implement a DisposableBean.destroy() method, closing down their object pool.

从以下版本开始:
4.0
作者:
Rod Johnson, Juergen Hoeller
另请参阅:
  • 字段详细资料

    • maxSize

      private int maxSize
      The maximum size of the pool.
  • 构造器详细资料

    • AbstractPoolingTargetSource

      public AbstractPoolingTargetSource()
  • 方法详细资料

    • setMaxSize

      public void setMaxSize(int maxSize)
      Set the maximum size of the pool. Default is -1, indicating no size limit.
    • getMaxSize

      public int getMaxSize()
      Return the maximum size of the pool.
      指定者:
      getMaxSize 在接口中 PoolingConfig
    • setBeanFactory

      public final void setBeanFactory(infra.beans.factory.BeanFactory beanFactory) throws infra.beans.BeansException
      从类复制的说明: AbstractBeanFactoryTargetSource
      Set the owning BeanFactory. We need to save a reference so that we can use the getBean method on every invocation.
      指定者:
      setBeanFactory 在接口中 infra.beans.factory.BeanFactoryAware
      覆盖:
      setBeanFactory 在类中 AbstractPrototypeTargetSource
      抛出:
      infra.beans.BeansException
    • createPool

      protected abstract void createPool() throws Exception
      Create the pool.
      抛出:
      Exception - to avoid placing constraints on pooling APIs
    • getTarget

      @Nullable public abstract Object getTarget() throws Exception
      Acquire an object from the pool.
      指定者:
      getTarget 在接口中 TargetSource
      返回:
      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 abstract void releaseTarget(Object target) throws Exception
      Return the given object to the pool.
      指定者:
      releaseTarget 在接口中 TargetSource
      覆盖:
      releaseTarget 在类中 AbstractBeanFactoryTargetSource
      参数:
      target - object that must have been acquired from the pool via a call to getTarget()
      抛出:
      Exception - to allow pooling APIs to throw exception
      另请参阅:
    • getPoolingConfigMixin

      public DefaultIntroductionAdvisor getPoolingConfigMixin()
      Return an IntroductionAdvisor that provides a mixin exposing statistics about the pool maintained by this object.