Class LazyInitTargetSourceCreator

java.lang.Object
org.springframework.aop.framework.autoproxy.target.AbstractBeanFactoryBasedTargetSourceCreator
org.springframework.aop.framework.autoproxy.target.LazyInitTargetSourceCreator
All Implemented Interfaces:
TargetSourceCreator, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.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 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:
  • 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 class AbstractBeanFactoryBasedTargetSourceCreator
      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, or null if they are not interested it in, in which case no special target source will be created. Subclasses should not call setTargetBeanName or setBeanFactory on the AbstractPrototypeBasedTargetSource: This class' implementation of getTargetSource() will do that.
      Specified by:
      createBeanFactoryBasedTargetSource in class AbstractBeanFactoryBasedTargetSourceCreator
      Parameters:
      beanClass - the class of the bean to create a TargetSource for
      beanName - the name of the bean
      Returns:
      the AbstractPrototypeBasedTargetSource, or null if we don't match this