|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource org.springframework.aop.target.AbstractPrototypeBasedTargetSource org.springframework.aop.target.ThreadLocalTargetSource
public class ThreadLocalTargetSource
Alternative to an object pool. This TargetSource uses a threading model in which every thread has its own copy of the target. There's no contention for targets. Target object creation is kept to a minimum on the running server.
Application code is written as to a normal pool; callers can't assume they will be dealing with the same instance in invocations in different threads. However, state can be relied on during the operations of a single thread: for example, if one caller makes repeated calls on the AOP proxy.
Cleanup of thread-bound objects is performed on BeanFactory destruction,
calling their DisposableBean.destroy()
method if available.
Be aware that many thread-bound objects can be around until the application
actually shuts down.
ThreadLocalTargetSourceStats
,
DisposableBean.destroy()
,
Serialized FormField Summary | |
---|---|
private int |
hitCount
|
private int |
invocationCount
|
private java.lang.ThreadLocal<java.lang.Object> |
targetInThread
ThreadLocal holding the target associated with the current thread. |
private java.util.Set<java.lang.Object> |
targetSet
Set of managed targets, enabling us to keep track of the targets we've created. |
Fields inherited from class org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource |
---|
logger |
Constructor Summary | |
---|---|
ThreadLocalTargetSource()
|
Method Summary | |
---|---|
void |
destroy()
Dispose of targets if necessary; clear ThreadLocal. |
int |
getHitCount()
Return the number of hits that were satisfied by a thread-bound object. |
int |
getInvocationCount()
Return the number of client invocations. |
int |
getObjectCount()
Return the number of thread-bound objects created. |
IntroductionAdvisor |
getStatsMixin()
Return an introduction advisor mixin that allows the AOP proxy to be cast to ThreadLocalInvokerStats. |
java.lang.Object |
getTarget()
Implementation of abstract getTarget() method. |
Methods inherited from class org.springframework.aop.target.AbstractPrototypeBasedTargetSource |
---|
destroyPrototypeInstance, newPrototypeInstance, setBeanFactory, writeReplace |
Methods inherited from class org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource |
---|
copyFrom, equals, getBeanFactory, getTargetBeanName, getTargetClass, hashCode, isStatic, releaseTarget, setTargetBeanName, setTargetClass, toString |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private final java.lang.ThreadLocal<java.lang.Object> targetInThread
private final java.util.Set<java.lang.Object> targetSet
private int invocationCount
private int hitCount
Constructor Detail |
---|
public ThreadLocalTargetSource()
Method Detail |
---|
public java.lang.Object getTarget() throws BeansException
getTarget
in interface TargetSource
BeansException
public void destroy()
destroy
in interface DisposableBean
AbstractPrototypeBasedTargetSource.destroyPrototypeInstance(java.lang.Object)
public int getInvocationCount()
ThreadLocalTargetSourceStats
getInvocationCount
in interface ThreadLocalTargetSourceStats
public int getHitCount()
ThreadLocalTargetSourceStats
getHitCount
in interface ThreadLocalTargetSourceStats
public int getObjectCount()
ThreadLocalTargetSourceStats
getObjectCount
in interface ThreadLocalTargetSourceStats
public IntroductionAdvisor getStatsMixin()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |