public abstract class

AbstractLazyCreationTargetSource

extends Object
implements TargetSource
java.lang.Object
   ↳ org.springframework.aop.target.AbstractLazyCreationTargetSource

Class Overview

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.

Summary

Fields
protected final Log logger Logger available to subclasses
Public Constructors
AbstractLazyCreationTargetSource()
Public Methods
synchronized Object getTarget()
Returns the lazy-initialized target object, creating it on-the-fly if it doesn't exist already.
synchronized 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.
synchronized boolean isInitialized()
Return whether the lazy target object of this TargetSource has already been fetched.
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().

void releaseTarget(Object target)
Release the given target object obtained from the getTarget() method.
Protected Methods
abstract Object createObject()
Subclasses should implement this method to return the lazy initialized object.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.springframework.aop.TargetClassAware
From interface org.springframework.aop.TargetSource

Fields

protected final Log logger

Logger available to subclasses

Public Constructors

public AbstractLazyCreationTargetSource ()

Public Methods

public synchronized Object getTarget ()

Returns the lazy-initialized target object, creating it on-the-fly if it doesn't exist already.

Returns
  • the target object, which contains the joinpoint
Throws
Exception
See Also

public synchronized 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.

Subclasses may wish to override this method in order to provide a meaningful value when the target is still null.

Returns
See Also

public synchronized boolean isInitialized ()

Return whether the lazy target object of this TargetSource has already been fetched.

public 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().

Returns
  • true if the target is immutable

public void releaseTarget (Object target)

Release the given target object obtained from the getTarget() method.

Parameters
target object obtained from a call to getTarget()
Throws
Exception

Protected Methods

protected abstract Object createObject ()

Subclasses should implement this method to return the lazy initialized object. Called the first time the proxy is invoked.

Returns
  • the created object
Throws
Exception if creation failed