org.springframework.aop.target.dynamic

Class AbstractRefreshableTargetSource

  • java.lang.Object
    • org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      protected Log logger
      Logger available to subclasses.
      protected java.lang.Object targetObject 
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method and Description
      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.
      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

      • logger

        protected final Log logger
        Logger available to subclasses.
      • targetObject

        @Nullable
        protected java.lang.Object targetObject
    • Constructor Detail

      • AbstractRefreshableTargetSource

        public AbstractRefreshableTargetSource()
    • Method Detail

      • 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() returns true.

      • getTarget

        @Nullable
        public final java.lang.Object getTarget()
        Description copied from interface: TargetSource
        Return a target instance. Invoked immediately before the AOP framework calls the "target" of an AOP method invocation.
        Specified by:
        getTarget in interface TargetSource
        Returns:
        the target object which contains the joinpoint, or null if there is no actual target instance
      • refresh

        public final void refresh()
        Description copied from interface: Refreshable
        Refresh the underlying target object.
        Specified by:
        refresh in interface Refreshable
      • getRefreshCount

        public long getRefreshCount()
        Description copied from interface: Refreshable
        Return the number of actual refreshes since startup.
        Specified by:
        getRefreshCount in interface Refreshable
      • getLastRefreshTime

        public long getLastRefreshTime()
        Description copied from interface: Refreshable
        Return the last time an actual refresh happened (as timestamp).
        Specified by:
        getLastRefreshTime in interface Refreshable
      • 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

        protected abstract java.lang.Object freshTarget()
        Obtain a fresh target object.

        Only invoked if a refresh check has found that a refresh is required (that is, requiresRefresh() has returned true).

        Returns:
        the fresh target object