在spring中有很多Enable开头的注解,作用就是@Import来收集并注册特定的场景相关的bean,并且加入到IOC容器。

@EnableAutoConfiguration就是借助@Import来收集所有符合自动配置条件的bean定义,并加载到IOC容器中。

在这里可能会好奇的是为什么@SpringBootApplication必须跟业务包放在同一级路劲上,这里需要了解的一个注解是:@AutoConfigurationPackage

在Registrar.class类中

 

再项目启动加载的时候,都会去加载spring.factories,而这个文件再META-INF得目录下,通过这个文件可以加载到存放得相关得配置工厂类,这时候再springboot启动的时候,就会去加载自动配置核心注解@EnableAutoConfiguration, 这时候会去加载process方法后,加载spring.factories中的所有的工厂类,然后进程fiter过滤得到我们pom.xml配置的jar对应的配置工厂类加入到ioc容器中。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐