|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
public abstract class AbstractRefreshableTargetSource
Abstract TargetSource
implementation that
wraps a refreshable target object. Subclasses can determine whether a
refresh is required, and need to provide fresh target objects.
Implements the Refreshable
interface in order to allow for
explicit control over the refresh status.
requiresRefresh()
,
freshTarget()
Field Summary | |
---|---|
private long |
lastRefreshCheck
|
private long |
lastRefreshTime
|
protected Log |
logger
Logger available to subclasses |
private long |
refreshCheckDelay
|
private long |
refreshCount
|
protected java.lang.Object |
targetObject
|
Constructor Summary | |
---|---|
AbstractRefreshableTargetSource()
|
Method Summary | |
---|---|
protected abstract java.lang.Object |
freshTarget()
Obtain a fresh target object. |
long |
getLastRefreshTime()
Return the last time an actual refresh happened (as timestamp). |
long |
getRefreshCount()
Return the number of actual refreshes since startup. |
java.lang.Object |
getTarget()
Return a target instance. |
java.lang.Class<?> |
getTargetClass()
Return the type of targets returned by this TargetSource . |
boolean |
isStatic()
Not static. |
void |
refresh()
Refresh the underlying target object. |
private boolean |
refreshCheckDelayElapsed()
|
void |
releaseTarget(java.lang.Object object)
No need to release target. |
protected boolean |
requiresRefresh()
Determine whether a refresh is required. |
void |
setRefreshCheckDelay(long refreshCheckDelay)
Set the delay between refresh checks, in milliseconds. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected Log logger
protected java.lang.Object targetObject
private long refreshCheckDelay
private long lastRefreshCheck
private long lastRefreshTime
private long refreshCount
Constructor Detail |
---|
public AbstractRefreshableTargetSource()
Method Detail |
---|
public void setRefreshCheckDelay(long refreshCheckDelay)
Note that an actual refresh will only happen when
requiresRefresh()
returns true
.
public java.lang.Class<?> getTargetClass()
TargetSource
TargetSource
.
Can return null
, although certain usages of a
TargetSource
might just work with a predetermined
target class.
getTargetClass
in interface TargetClassAware
getTargetClass
in interface TargetSource
TargetSource
public boolean isStatic()
isStatic
in interface TargetSource
true
if the target is immutableTargetSource.getTarget()
public final java.lang.Object getTarget()
TargetSource
getTarget
in interface TargetSource
public void releaseTarget(java.lang.Object object)
releaseTarget
in interface TargetSource
object
- object obtained from a call to TargetSource.getTarget()
public final void refresh()
Refreshable
refresh
in interface Refreshable
public long getRefreshCount()
Refreshable
getRefreshCount
in interface Refreshable
public long getLastRefreshTime()
Refreshable
getLastRefreshTime
in interface Refreshable
private boolean refreshCheckDelayElapsed()
protected boolean requiresRefresh()
The default implementation always returns true
, triggering
a refresh every time the delay has elapsed. To be overridden by subclasses
with an appropriate check of the underlying target resource.
protected abstract java.lang.Object freshTarget()
Only invoked if a refresh check has found that a refresh is required
(that is, requiresRefresh()
has returned true
).
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |