目录
-
-
- 一. @ComponentScan说明
- 二. 源码解析步骤
-
- 1. ConfigurationClassPostProcessor.processConfigBeanDefinitions()
- 2. ConfigurationClassParser.processConfigurationClass()
- 3. ConfigurationClassParser.doProcessConfigurationClass()
- 4. ComponentScanAnnotationParser.parse()
- 5. 核心步骤: ClassPathBeanDefinitionScanner.doScan(String... basePackages)
- 6. 核心扫描解析步骤: ClassPathBeanDefinitionScanner.scanCandidateComponents(String basePackage)
-
一. @ComponentScan说明
在Spring中, @ComponentScan注解一般都使用在配置类AppConfig上, 定义扫描的路径, 可定义多个路径。
Spring在启动的时候就可以根据注解定义的扫描路径扫描所有的class结尾的文件(target目录下),然后将所有的class普通类转化成BeanDefinition注册到容器中
## @ComponentScan 注解源码
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Repeatable(