Spring Boot 配置类流程

一、配置文件入口

Spring Boot 配置类流程

 

 

二、postProcessBeanDefinitionRegistry逻辑

Spring Boot 配置类流程

 

获得 BeanDefinitionRegistry的唯一id: registryId,

检查一下registryId是否处理过。

如果没有处理过,将它添加到已处理集合中。

然后调用processConfigBeanDefinition方法

 

三、processConfigBeanDefinition逻辑

进入processConfigBeanDefinitions方法。

Spring Boot 配置类流程

 1、首先遍历BeanDefinition

configCandidates为空,就返回。有一个值,beanname为sb2Application 

 

2、继续往下走,ConfigurationClasParser是配置类的解析工具。 

Spring Boot 配置类流程

 有两个集合。candidates是待处理配置类集合, alreadyParsed是已经处理完毕的配置类集合。

然后是do while循环体重。parse方法解析candidates

 

 进入parse方法,获得BeanDefinition赋值给bd,bd的metadata中有三个注解

Spring Boot 配置类流程

 

 

sb2Application注解如下

Spring Boot 配置类流程

 

 

然后进入parse(((AnnotatedBeanDefinition) bd).getMetadata(), holder.getBeanName());

Spring Boot 配置类流程

具体解析流程见下一篇。 

 

3、解析完以后,注册importRegistry以及清空缓存。

上一篇:Spring源码之BeanDefinition


下一篇:Spring Ioc、DI