Spring启动invokeBeanFactoryPostProcessors方法解释
概述
本方法(invokeBeanFactoryPostProcessors)会实例化和调用所有 BeanFactoryPostProcessor(包括其子类BeanDefinitionRegistryPostProcessor)。
BeanFactoryPostProcessor 接口是 Spring 初始化 BeanFactory 时对外暴露的扩展点,Spring IoC 容器允许 BeanFactoryPostProcessor 在容器实例化任何 bean 之前读取 bean 的定义,并可以修改它。
BeanDefinitionRegistryPostProcessor 继承自 BeanFactoryPostProcessor,比 BeanFactoryPostProcessor 具有更高的优先级,主要用来在常规的 BeanFactoryPostProcessor 检测开始之前注册其他 bean 定义。特别是,你可以通过 BeanDefinitionRegistryPostProcessor 来注册一些常规的 BeanFactoryPostProcessor,因为此时所有常规的 BeanFactoryPostProcessor 都还没开始被处理。
项目中的实战
BeanDefinitionRegistryPostProcessor初始化Bean的例子
1 | // 想根据配置文件来动态的生成我们的Bean对象 |
BeanFactoryPostProcessor初始化的时候do something
1 | public class KeplerBeanFactoryPostInitializer implements BeanFactoryPostProcessor { |



