|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.aop.target.AbstractLazyCreationTargetSource
public abstract class AbstractLazyCreationTargetSource
TargetSource
implementation that will
lazily create a user-managed object.
Creation of the lazy target object is controlled by the user by implementing
the createObject()
method. This TargetSource
will invoke
this method the first time the proxy is accessed.
Useful when you need to pass a reference to some dependency to an object but you don't actually want the dependency to be created until it is first used. A typical scenario for this is a connection to a remote resource.
isInitialized()
,
createObject()
Field Summary | |
---|---|
private java.lang.Object |
lazyTarget
The lazily initialized target object |
protected Log |
logger
Logger available to subclasses |
Constructor Summary | |
---|---|
AbstractLazyCreationTargetSource()
|
Method Summary | |
---|---|
protected abstract java.lang.Object |
createObject()
Subclasses should implement this method to return the lazy initialized object. |
java.lang.Object |
getTarget()
Returns the lazy-initialized target object, creating it on-the-fly if it doesn't exist already. |
java.lang.Class<?> |
getTargetClass()
This default implementation returns null if the
target is null (it is hasn't yet been initialized),
or the target class if the target has already been initialized. |
boolean |
isInitialized()
Return whether the lazy target object of this TargetSource has already been fetched. |
boolean |
isStatic()
Will all calls to TargetSource.getTarget() return the same object? |
void |
releaseTarget(java.lang.Object target)
Release the given target object obtained from the TargetSource.getTarget() method. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final Log logger
private java.lang.Object lazyTarget
Constructor Detail |
---|
public AbstractLazyCreationTargetSource()
Method Detail |
---|
public boolean isInitialized()
public java.lang.Class<?> getTargetClass()
null
if the
target is null
(it is hasn't yet been initialized),
or the target class if the target has already been initialized.
Subclasses may wish to override this method in order to provide
a meaningful value when the target is still null
.
getTargetClass
in interface TargetClassAware
getTargetClass
in interface TargetSource
TargetSource
isInitialized()
public boolean isStatic()
TargetSource
TargetSource.getTarget()
return the same object?
In that case, there will be no need to invoke
TargetSource.releaseTarget(Object)
, and the AOP framework can cache
the return value of TargetSource.getTarget()
.
isStatic
in interface TargetSource
true
if the target is immutableTargetSource.getTarget()
public java.lang.Object getTarget() throws java.lang.Exception
getTarget
in interface TargetSource
java.lang.Exception
- if the target object can't be resolvedcreateObject()
public void releaseTarget(java.lang.Object target) throws java.lang.Exception
TargetSource
TargetSource.getTarget()
method.
releaseTarget
in interface TargetSource
target
- object obtained from a call to TargetSource.getTarget()
java.lang.Exception
- if the object can't be releasedprotected abstract java.lang.Object createObject() throws java.lang.Exception
java.lang.Exception
- if creation failed
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |