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
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 an autodetected
infrastructure bean in an XML application context definition:
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames" value="*" /> <!-- apply to all beans --> <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, Sam Brannen
- See Also:
-
Field Summary
Fields inherited from class org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
logger
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
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 Details
-
LazyInitTargetSourceCreator
public LazyInitTargetSourceCreator()
-
-
Method Details
-
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:
-
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
-