Правильный ответ на вопрос: «Может ли Spring init Bean (Factory) PostProcessor лениво?» равно «НЕТ» .Я проверил это сам.Я создал 2 класса:
@Lazy
@Component
public class CustomBeanFactoryPostProcessor implements BeanFactoryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
System.out.println("bean factory!");
}
}
и
@Lazy
@Component
public class CustomBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
System.out.println("before init!");
return bean;
}
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
}
И запустил приложение Spring.Итак, в консоли было напечатано: «bean factory» и несколько раз «перед init», хотя я поместил аннотацию @Lazy для этих классов.