Class AbstractRefreshableTargetSource
java.lang.Object
org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
- All Implemented Interfaces:
Refreshable,TargetClassAware,TargetSource
- Direct Known Subclasses:
BeanFactoryRefreshableTargetSource
public abstract class AbstractRefreshableTargetSource
extends Object
implements TargetSource, Refreshable
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.
- Since:
- 2.0
- Author:
- Rod Johnson, Rob Harrop, Juergen Hoeller
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract ObjectObtain a fresh target object.longReturn the last time an actual refresh happened (as timestamp).longReturn the number of actual refreshes since startup.final ObjectReturn a target instance.Class<?>Return the type of targets returned by thisTargetSource.booleanisStatic()Not static.final voidrefresh()Refresh the underlying target object.voidreleaseTarget(Object object) No need to release target.protected booleanDetermine whether a refresh is required.voidsetRefreshCheckDelay(long refreshCheckDelay) Set the delay between refresh checks, in milliseconds.
-
Field Details
-
logger
Logger available to subclasses. -
targetObject
-
-
Constructor Details
-
AbstractRefreshableTargetSource
public AbstractRefreshableTargetSource()
-
-
Method Details
-
setRefreshCheckDelay
public void setRefreshCheckDelay(long refreshCheckDelay) Set the delay between refresh checks, in milliseconds. Default is -1, indicating no refresh checks at all.Note that an actual refresh will only happen when
requiresRefresh()returnstrue. -
getTargetClass
Description copied from interface:TargetSourceReturn the type of targets returned by thisTargetSource.Can return
null, although certain usages of aTargetSourcemight just work with a predetermined target class.- Specified by:
getTargetClassin interfaceTargetClassAware- Specified by:
getTargetClassin interfaceTargetSource- Returns:
- the type of targets returned by this
TargetSource
-
isStatic
public boolean isStatic()Not static.- Specified by:
isStaticin interfaceTargetSource- Returns:
trueif the target is immutable- See Also:
-
getTarget
Description copied from interface:TargetSourceReturn a target instance. Invoked immediately before the AOP framework calls the "target" of an AOP method invocation.- Specified by:
getTargetin interfaceTargetSource- Returns:
- the target object which contains the joinpoint,
or
nullif there is no actual target instance
-
releaseTarget
No need to release target.- Specified by:
releaseTargetin interfaceTargetSource- Parameters:
object- object obtained from a call toTargetSource.getTarget()
-
refresh
public final void refresh()Description copied from interface:RefreshableRefresh the underlying target object.- Specified by:
refreshin interfaceRefreshable
-
getRefreshCount
public long getRefreshCount()Description copied from interface:RefreshableReturn the number of actual refreshes since startup.- Specified by:
getRefreshCountin interfaceRefreshable
-
getLastRefreshTime
public long getLastRefreshTime()Description copied from interface:RefreshableReturn the last time an actual refresh happened (as timestamp).- Specified by:
getLastRefreshTimein interfaceRefreshable
-
requiresRefresh
protected boolean requiresRefresh()Determine whether a refresh is required. Invoked for each refresh check, after the refresh check delay has elapsed.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.- Returns:
- whether a refresh is required
-
freshTarget
Obtain a fresh target object.Only invoked if a refresh check has found that a refresh is required (that is,
requiresRefresh()has returnedtrue).- Returns:
- the fresh target object
-