Class LazyInitOverrideBeanFactoryPostProcessor

java.lang.Object
de.hybris.platform.spring.LazyInitOverrideBeanFactoryPostProcessor
All Implemented Interfaces:
org.springframework.beans.factory.config.BeanFactoryPostProcessor

public class LazyInitOverrideBeanFactoryPostProcessor extends Object implements org.springframework.beans.factory.config.BeanFactoryPostProcessor
This BeanFactoryPostProcessor was created to make sure that some beans can be eagerly loaded even if default setting is set to lazy loading.

This is useful especially for some configuration beans like ListMergeDirective which would never be loaded in lazy mode because there is nothing that requires them explicitly, but without them system will misbehave.

  • Constructor Details

    • LazyInitOverrideBeanFactoryPostProcessor

      public LazyInitOverrideBeanFactoryPostProcessor()
  • Method Details

    • postProcessBeanFactory

      public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) throws org.springframework.beans.BeansException
      Searches for bean definitions that are not abstract and are of particular class. For those bean definitions it overrides lazyInit property.
      Specified by:
      postProcessBeanFactory in interface org.springframework.beans.factory.config.BeanFactoryPostProcessor
      Throws:
      org.springframework.beans.BeansException
    • getMergedBeanDefinition

      protected Optional<org.springframework.beans.factory.config.BeanDefinition> getMergedBeanDefinition(String beanName, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
      Helper method for getting MergedBeanDefintion and ignoring potential errors by returning Optional.empty
    • forName

      protected Class<?> forName(String name)
      Helper method for getting class for name without throwing exception. Null returned for non existing classes will be ignored in filtering stream.
    • isSupportedClass

      protected boolean isSupportedClass(Class<?> clazz)
      Predicate finding if given class exists in set of supported classes (is assignable to any of them)
    • overrideLazyInit

      protected void overrideLazyInit(String beanName, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
      Overrides lazyInit property for given bean definition.
    • setEagerlyLoadedClasses

      public void setEagerlyLoadedClasses(List<Class<?>> eagerlyLoadedClasses)
    • getEagerlyLoadedClasses

      protected List<Class<?>> getEagerlyLoadedClasses()
    • setLazyInit

      public void setLazyInit(boolean lazyInit)
    • getLazyInit

      protected boolean getLazyInit()