Class LazyInitTargetSourceCreator
- java.lang.Object
- org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
- org.springframework.aop.framework.autoproxy.target.LazyInitTargetSourceCreator
- All Implemented Interfaces:
TargetSourceCreator
,Aware
,BeanFactoryAware
,DisposableBean
public class LazyInitTargetSourceCreator extends AbstractBeanFactoryBasedTargetSourceCreator
TargetSourceCreator that enforces a LazyInitTargetSource for each bean that is defined as "lazy-init". This will lead to a proxy created for each of those beans, allowing to fetch a reference to such a bean without actually initializing the target bean instance.To be registered as custom TargetSourceCreator for an auto-proxy creator, in combination with custom interceptors for specific beans or for the creation of lazy-init proxies only. For example, as autodetected infrastructure bean in an XML application context definition:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="customTargetSourceCreators"> <list> <bean class="org.springframework.aop.framework.autoproxy.target.LazyInitTargetSourceCreator"/> </list> </property> </bean> <bean id="myLazyInitBean" class="mypackage.MyBeanClass" lazy-init="true"> ... </bean>
- Since:
- 1.2
- Author:
- Juergen Hoeller
- See Also:
BeanDefinition.isLazyInit()
,AbstractAutoProxyCreator.setCustomTargetSourceCreators(org.springframework.aop.framework.autoproxy.TargetSourceCreator...)
,BeanNameAutoProxyCreator
Field Summary
Fields inherited from class org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
logger
Constructor Summary
Constructors Constructor Description LazyInitTargetSourceCreator()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected AbstractBeanFactoryBasedTargetSource
createBeanFactoryBasedTargetSource(Class<?> beanClass, String beanName)
Subclasses must implement this method to return a new AbstractPrototypeBasedTargetSource if they wish to create a custom TargetSource for this bean, ornull
if they are not interested it in, in which case no special target source will be created.protected boolean
isPrototypeBased()
Return whether this TargetSourceCreator is prototype-based.Methods inherited from class org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
buildInternalBeanFactory, destroy, getBeanFactory, getInternalBeanFactoryForBean, getTargetSource, setBeanFactory
Constructor Detail
LazyInitTargetSourceCreator
public LazyInitTargetSourceCreator()
Method Detail
isPrototypeBased
protected boolean isPrototypeBased()
Description copied from class:AbstractBeanFactoryBasedTargetSourceCreator
Return whether this TargetSourceCreator is prototype-based. The scope of the target bean definition will be set accordingly.Default is "true".
- Overrides:
isPrototypeBased
in classAbstractBeanFactoryBasedTargetSourceCreator
- See Also:
BeanDefinition.isSingleton()
createBeanFactoryBasedTargetSource
@Nullable protected AbstractBeanFactoryBasedTargetSource createBeanFactoryBasedTargetSource(Class<?> beanClass, String beanName)
Description copied from class:AbstractBeanFactoryBasedTargetSourceCreator
Subclasses must implement this method to return a new AbstractPrototypeBasedTargetSource if they wish to create a custom TargetSource for this bean, ornull
if they are not interested it in, in which case no special target source will be created. Subclasses should not callsetTargetBeanName
orsetBeanFactory
on the AbstractPrototypeBasedTargetSource: This class' implementation ofgetTargetSource()
will do that.- Specified by:
createBeanFactoryBasedTargetSource
in classAbstractBeanFactoryBasedTargetSourceCreator
- Parameters:
beanClass
- the class of the bean to create a TargetSource forbeanName
- the name of the bean- Returns:
- the AbstractPrototypeBasedTargetSource, or
null
if we don't match this