- 打开
@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会将当前启动类所在包下面的所有组件扫描到容器中。