Spring源码invokeBeanFactoryPostProcessors方法说明(二)
一、开始
1、寻找配置类(org.springframework.context.annotation.ConfigurationClassPostProcessor#processConfigBeanDefinitions)
2、checkConfigurationClassCandidate中有这样一段代码
看完这段代码是不是突然get到什么东西了,是不是对于寻找配置类的方法有所了解了。
3、重点(org.springframework.context.annotation.ConfigurationClassParser#parse)
4、doProcessConfigurationClass分析
5、doProcessConfigurationClass–>@PropertySource注解分析
6、doProcessConfigurationClass–>@ComponentScan注解分析(重点)
parse:创建ClassPathBeanDefinitionScanner,把componentScan转换成ClassPathBeanDefinitionScanner
下面主要分析doScan里的这两个方法
findCandidateComponents方法分析
findCandidateComponents–>isCandidateComponent
findCandidateComponents–>registerBeanDefinition,一目了然,注册beanDefinition,注册别名
二、结束
本章主要分析了 @PropertySource和@ComponentScan源码。下一章将分析@Import源码。