- 打開
@SpringBootApplication
可看到@EnableAutoConfiguration
偷卧,即開啟自動配置功能 - 打開
@EnableAutoConfiguration
可看到@AutoConfigurationPackage
储藐,即自動配置包 - 打開
@AutoConfigurationPackage
可看到@Import(AutoConfigurationPackages.Registrar.class)
,即向容器中注入AutoConfigurationPackages.Registrar.class
- 進入可看到
@Override
public void registerBeanDefinitions(AnnotationMetadata metadata,
BeanDefinitionRegistry registry) {
register(registry, new PackageImport(metadata).getPackageName());
}
其中AnnotationMetadata metadata
是最初的@SpringBootApplication
標簽钥星,故new PackageImport(metadata).getPackageName()
就可獲得@SpringBootApplication
標簽所在的包路徑。
總結:SpringBoot會將當前啟動類所在包下面的所有組件掃描到容器中。