public class

LazyInitTargetSource

extends AbstractBeanFactoryBasedTargetSource
java.lang.Object
   ↳ org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
     ↳ org.springframework.aop.target.LazyInitTargetSource

Class Overview

TargetSource that lazily accesses a singleton bean from a BeanFactory.

Useful when a proxy reference is needed on initialization but the actual target object should not be initialized until first use. When the target bean is defined in an ApplicationContext (or a BeanFactory that is eagerly pre-instantiating singleton beans) it must be marked as "lazy-init" too, else it will be instantiated by said ApplicationContext (or BeanFactory) on startup.

For example:

 <bean id="serviceTarget" class="example.MyService" lazy-init="true">
   ...
 </bean>

 <bean id="service" class="org.springframework.aop.framework.ProxyFactoryBean">
   <property name="targetSource">
     <bean class="org.springframework.aop.target.LazyInitTargetSource">
       <property name="targetBeanName"><idref local="serviceTarget"/></property>
     </bean>
   </property>
 </bean>
The "serviceTarget" bean will not get initialized until a method on the "service" proxy gets invoked.

Subclasses can extend this class and override the postProcessTargetObject(Object) to perform some additional processing with the target object when it is first loaded.

Summary

[Expand]
Inherited Fields
From class org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
Public Constructors
LazyInitTargetSource()
Public Methods
synchronized Object getTarget()
Protected Methods
void postProcessTargetObject(Object targetObject)
Subclasses may override this method to perform additional processing on the target object when it is first loaded.
[Expand]
Inherited Methods
From class org.springframework.aop.target.AbstractBeanFactoryBasedTargetSource
From class java.lang.Object
From interface org.springframework.aop.TargetClassAware
From interface org.springframework.aop.TargetSource
From interface org.springframework.beans.factory.BeanFactoryAware

Public Constructors

public LazyInitTargetSource ()

Public Methods

public synchronized Object getTarget ()

Protected Methods

protected void postProcessTargetObject (Object targetObject)

Subclasses may override this method to perform additional processing on the target object when it is first loaded.

Parameters
targetObject the target object that has just been instantiated (and configured)