什么是配置类, 作用?
配置类一般使用Configuration注解,ComponentScan,Import等注解标注的类。起到配置的作用。
常用的配置注解
Import,PropertySource,ComponentScan等待
一、配置文件入口
二、postProcessBeanDefinitionRegistry逻辑
获得 BeanDefinitionRegistry的唯一id: registryId,
检查一下registryId是否处理过。
如果没有处理过,将它添加到已处理集合中。
然后调用processConfigBeanDefinition方法
三、processConfigBeanDefinition逻辑
进入processConfigBeanDefinitions方法。
1、首先遍历BeanDefinition
configCandidates为空,就返回。有一个值,beanname为sb2Application
2、继续往下走,ConfigurationClasParser是配置类的解析工具。 (processConfigBeanDefinitions方法。 具体解析流程见下一篇。 Spring Boot 配置类解析逻辑(processConfigBeanDefinitions方法中的循环体) )
有两个集合。candidates是待处理配置类集合, alreadyParsed是已经处理完毕的配置类集合。
然后是do while循环体重。parse方法解析candidates
进入parse方法,获得BeanDefinition赋值给bd,bd的metadata中有三个注解
sb2Application注解如下
然后进入parse(((AnnotatedBeanDefinition) bd).getMetadata(), holder.getBeanName());
3、解析完以后,注册importRegistry以及清空缓存。
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!