问题的正确答案:“Spring 可以懒惰地初始化 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”和几次“初始化之前”,尽管我在这些类上放置了@Lazy 注释。