|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
org.springframework.aop.target.AbstractPrototypeBasedTargetSource
org.springframework.aop.target.AbstractPoolingTargetSource
public abstract class AbstractPoolingTargetSource
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 CommonsPoolTargetSource for a concrete example.
Subclasses must implement the getTarget() and
releaseTarget(java.lang.Object) methods based on their chosen object pool.
The AbstractPrototypeBasedTargetSource.newPrototypeInstance() method inherited from
AbstractPrototypeBasedTargetSource 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.
getTarget(),
releaseTarget(java.lang.Object),
DisposableBean.destroy(),
Serialized Form| Field Summary |
|---|
| Fields inherited from class org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource |
|---|
logger |
| Constructor Summary | |
|---|---|
AbstractPoolingTargetSource()
|
|
| Method Summary | |
|---|---|
protected abstract void |
createPool()
Create the pool. |
int |
getMaxSize()
Return the maximum size of the pool. |
DefaultIntroductionAdvisor |
getPoolingConfigMixin()
Return an IntroductionAdvisor that providing a mixin exposing statistics about the pool maintained by this object. |
abstract Object |
getTarget()
Acquire an object from the pool. |
abstract void |
releaseTarget(Object target)
Return the given object to the pool. |
void |
setBeanFactory(BeanFactory beanFactory)
Set the owning BeanFactory. |
void |
setMaxSize(int maxSize)
Set the maximum size of the pool. |
| Methods inherited from class org.springframework.aop.target.AbstractPrototypeBasedTargetSource |
|---|
destroyPrototypeInstance, newPrototypeInstance, writeReplace |
| Methods inherited from class org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource |
|---|
copyFrom, equals, getBeanFactory, getTargetBeanName, getTargetClass, hashCode, isStatic, setTargetBeanName, setTargetClass, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.springframework.aop.target.PoolingConfig |
|---|
getActiveCount, getIdleCount |
| Methods inherited from interface org.springframework.beans.factory.DisposableBean |
|---|
destroy |
| Constructor Detail |
|---|
public AbstractPoolingTargetSource()
| Method Detail |
|---|
public void setMaxSize(int maxSize)
public int getMaxSize()
getMaxSize in interface PoolingConfig
public final void setBeanFactory(BeanFactory beanFactory)
throws BeansException
AbstractBeanFactoryBasedTargetSourcegetBean method on every invocation.
setBeanFactory in interface BeanFactoryAwaresetBeanFactory in class AbstractPrototypeBasedTargetSourcebeanFactory - owning BeanFactory (never null).
The bean can immediately call methods on the factory.
BeansException - in case of initialization errorsBeanInitializationException
protected abstract void createPool()
throws Exception
Exception - to avoid placing constraints on pooling APIs
public abstract Object getTarget()
throws Exception
getTarget in interface TargetSourceException - we may need to deal with checked exceptions from pool
APIs, so we're forgiving with our exception signature
public abstract void releaseTarget(Object target)
throws Exception
releaseTarget in interface TargetSourcereleaseTarget in class AbstractBeanFactoryBasedTargetSourcetarget - object that must have been acquired from the pool
via a call to getTarget()
Exception - to allow pooling APIs to throw exceptiongetTarget()public DefaultIntroductionAdvisor getPoolingConfigMixin()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||