一、配置文件入口
二、postProcessBeanDefinitionRegistry逻辑
获得 BeanDefinitionRegistry的唯一id: registryId,
检查一下registryId是否处理过。
如果没有处理过,将它添加到已处理集合中。
然后调用processConfigBeanDefinition方法
三、processConfigBeanDefinition逻辑
进入processConfigBeanDefinitions方法。
1、首先遍历BeanDefinition
configCandidates为空,就返回。有一个值,beanname为sb2Application
2、继续往下走,ConfigurationClasParser是配置类的解析工具。
有两个集合。candidates是待处理配置类集合, alreadyParsed是已经处理完毕的配置类集合。
然后是do while循环体重。parse方法解析candidates
进入parse方法,获得BeanDefinition赋值给bd,bd的metadata中有三个注解
sb2Application注解如下
然后进入parse(((AnnotatedBeanDefinition) bd).getMetadata(), holder.getBeanName());
具体解析流程见下一篇。
3、解析完以后,注册importRegistry以及清空缓存。