- 调用方法顺序
- refresh()
- invokeBeanFactoryPostProcessors(beanFactory)
- PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors())
- invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry)
- postProcessor.postProcessBeanDefinitionRegistry(registry)
- processConfigBeanDefinitions(registry)
- parser.parse(candidates)
- parse(((AnnotatedBeanDefinition) bd).getMetadata(), holder.getBeanName())
- processConfigurationClass(new ConfigurationClass(metadata, beanName), DEFAULT_EXCLUSION_FILTER)
- doProcessConfigurationClass(configClass, sourceClass, filter)
调用方法顺序
refresh()
invokeBeanFactoryPostProcessors(beanFactory)
PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors())
通过getBeanFactoryPostProcessors()来获取已经注册的BFPP
invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry)
执行postProcessBeanDefinitionRegistry方法
postProcessor.postProcessBeanDefinitionRegistry(registry)
调用 postProcessor 的 postProcessBeanDefinitionRegistry以使得postProcess往registry注册BeanDefinition对象
processConfigBeanDefinitions(registry)
parser.parse(candidates)
解析带有@Controller、@Import、@ImportResource、@ComponentScan、@ComponentScans、@Bean的BeanDefinition
parse(((AnnotatedBeanDefinition) bd).getMetadata(), holder.getBeanName())
processConfigurationClass(new ConfigurationClass(metadata, beanName), DEFAULT_EXCLUSION_FILTER)
doProcessConfigurationClass(configClass, sourceClass, filter)
解析各种注解
