1、AbstractApplicationContext#invokeBeanFactoryPostProcessors
扫描类,生成beanDefintion对象到beanDefintionMap中,对象还没有实例化,当spring把类所对应的beanDefintion对象存到map之后,spring会调用程序员提供的bean工厂后置处理器
ConfigurationClassPostProcessor$BeanDefinitionRegistryPostProcessor#postProcessBeanDefinitionRegistry
BeanDefinitionRegistryPostProcessor:他本身有一个需要实现方法,但因为继承了BeanFactoryPostProcessor接口,所以需要实现2个方法。分别是修改和添加bean定义
ConfigurationClassPostProcessor$BeanFactoryPostProcessor#postProcessBeanFactory
BeanFactoryPostProcessor:需要实现一个方法。只能修改bean定义
程序员提供的BeanFactoryPostProcessor#postProcessBeanFactory
可能没有(如果程序员没有提供自己的BeanFactoryPostProcessor)