Package de.hybris.platform.spring
Class LazyInitOverrideBeanFactoryPostProcessor
- java.lang.Object
-
- de.hybris.platform.spring.LazyInitOverrideBeanFactoryPostProcessor
-
- All Implemented Interfaces:
org.springframework.beans.factory.config.BeanFactoryPostProcessor
public class LazyInitOverrideBeanFactoryPostProcessor extends java.lang.Object implements org.springframework.beans.factory.config.BeanFactoryPostProcessorThis 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
ListMergeDirectivewhich would never be loaded in lazy mode because there is nothing that requires them explicitly, but without them system will misbehave.
-
-
Constructor Summary
Constructors Constructor Description LazyInitOverrideBeanFactoryPostProcessor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Class<?>forName(java.lang.String name)Helper method for getting class for name without throwing exception.protected java.util.List<java.lang.Class<?>>getEagerlyLoadedClasses()protected booleangetLazyInit()protected java.util.Optional<org.springframework.beans.factory.config.BeanDefinition>getMergedBeanDefinition(java.lang.String beanName, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Helper method for getting MergedBeanDefintion and ignoring potential errors by returning Optional.emptyprotected booleanisSupportedClass(java.lang.Class<?> clazz)Predicate finding if given class exists in set of supported classes (is assignable to any of them)protected voidoverrideLazyInit(java.lang.String beanName, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Overrides lazyInit property for given bean definition.voidpostProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Searches for bean definitions that are not abstract and are of particular class.voidsetEagerlyLoadedClasses(java.util.List<java.lang.Class<?>> eagerlyLoadedClasses)voidsetLazyInit(boolean lazyInit)
-
-
-
Method Detail
-
postProcessBeanFactory
public void postProcessBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory) throws org.springframework.beans.BeansExceptionSearches for bean definitions that are not abstract and are of particular class. For those bean definitions it overrides lazyInit property.- Specified by:
postProcessBeanFactoryin interfaceorg.springframework.beans.factory.config.BeanFactoryPostProcessor- Throws:
org.springframework.beans.BeansException
-
getMergedBeanDefinition
protected java.util.Optional<org.springframework.beans.factory.config.BeanDefinition> getMergedBeanDefinition(java.lang.String beanName, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Helper method for getting MergedBeanDefintion and ignoring potential errors by returning Optional.empty
-
forName
protected java.lang.Class<?> forName(java.lang.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(java.lang.Class<?> clazz)
Predicate finding if given class exists in set of supported classes (is assignable to any of them)
-
overrideLazyInit
protected void overrideLazyInit(java.lang.String beanName, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)Overrides lazyInit property for given bean definition.
-
setEagerlyLoadedClasses
public void setEagerlyLoadedClasses(java.util.List<java.lang.Class<?>> eagerlyLoadedClasses)
-
getEagerlyLoadedClasses
protected java.util.List<java.lang.Class<?>> getEagerlyLoadedClasses()
-
setLazyInit
public void setLazyInit(boolean lazyInit)
-
getLazyInit
protected boolean getLazyInit()
-
-