public class LazyInitTargetSource extends AbstractBeanFactoryBasedTargetSource
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
org.springframework.context.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.
BeanFactory.getBean(java.lang.String),
postProcessTargetObject(java.lang.Object),
Serialized Formlogger| Constructor and Description |
|---|
LazyInitTargetSource() |
| Modifier and Type | Method and Description |
|---|---|
Object |
getTarget()
Return a target instance.
|
protected void |
postProcessTargetObject(Object targetObject)
Subclasses may override this method to perform additional processing on
the target object when it is first loaded.
|
copyFrom, equals, getBeanFactory, getTargetBeanName, getTargetClass, hashCode, isStatic, releaseTarget, setBeanFactory, setTargetBeanName, setTargetClass, toStringpublic Object getTarget() throws org.springframework.beans.BeansException
TargetSourcenull if there is no actual target instanceorg.springframework.beans.BeansExceptionprotected void postProcessTargetObject(Object targetObject)
targetObject - the target object that has just been instantiated (and configured)