Interface TargetSource

All Superinterfaces:
TargetClassAware
All Known Implementing Classes:
AbstractBeanFactoryBasedTargetSource, AbstractLazyCreationTargetSource, AbstractPoolingTargetSource, AbstractPrototypeBasedTargetSource, AbstractRefreshableTargetSource, BeanFactoryRefreshableTargetSource, CommonsPool2TargetSource, EmptyTargetSource, HotSwappableTargetSource, JndiObjectTargetSource, LazyInitTargetSource, PrototypeTargetSource, RefreshableScriptTargetSource, SimpleBeanTargetSource, SingletonTargetSource, ThreadLocalTargetSource

public interface TargetSource extends TargetClassAware
A TargetSource is used to obtain the current "target" of an AOP invocation, which will be invoked via reflection if no around advice chooses to end the interceptor chain itself.

If a TargetSource is "static", it will always return the same target, allowing optimizations in the AOP framework. Dynamic target sources can support pooling, hot swapping, etc.

Application developers don't usually need to work with TargetSources directly: this is an AOP framework interface.

Author:
Rod Johnson, Juergen Hoeller
  • Method Details

    • getTargetClass

      @Nullable Class<?> getTargetClass()
      Return the type of targets returned by this TargetSource.

      Can return null, although certain usages of a TargetSource might just work with a predetermined target class.

      Specified by:
      getTargetClass in interface TargetClassAware
      Returns:
      the type of targets returned by this TargetSource
    • isStatic

      default boolean isStatic()
      Will all calls to getTarget() return the same object?

      In that case, there will be no need to invoke releaseTarget(Object), and the AOP framework can cache the return value of getTarget().

      The default implementation returns false.

      Returns:
      true if the target is immutable
      See Also:
    • getTarget

      @Nullable Object getTarget() throws Exception
      Return a target instance. Invoked immediately before the AOP framework calls the "target" of an AOP method invocation.
      Returns:
      the target object which contains the joinpoint, or null if there is no actual target instance
      Throws:
      Exception - if the target object can't be resolved
    • releaseTarget

      default void releaseTarget(Object target) throws Exception
      Release the given target object obtained from the getTarget() method, if any.

      The default implementation is empty.

      Parameters:
      target - object obtained from a call to getTarget()
      Throws:
      Exception - if the object can't be released