spring boot上的大体流程.
自动配置的解析入口在ConfigurationClassPostProcessor类的postProcessBeanDefinitionRegistry方法上.我们从这里来分析其具体的实现.
1.processConfigBeanDefinition首先来看这个函数的实现.
1).首先从defaultListableBeanFactory中拿到所有的已经注册的bean
2).然后对所有的bean进行检测,看其是不是满足条件的注解类.条件如下
Configuration.class
Component.class
ComponentScan.class
Import.class
ImportResource.class
看这个bean是不是包含上述注解.如果没有,则进行最后一个检测,检测这个类的所有成员方法是否有Bean.class的注解.
3)生成ConfigurationClassParser对象.开始对所有满足条件的Bean进行解析.
2.doProcessConfigurationClass
1)首先判断是不是一个Component.class注解类.如果是,则进行下面操作
<1>.判断这个类有没有内部类.如果没有over
<2>.如果有内部类,那么继续对内部类判断是不是满足1. 2)要求.如果满足.递归解析
2).判断类里面有没PropertySources.class的注解.如果有调用processPropertySource来处理它
3).判断类里