1 Springboot 启动主要是由@SpringBootApplication 这个注解来完成的,而 @SpringBootApplication 由以下几个注解组成
这里面有三个核心注解,那就是@SpringBootConfiguration配置注解和@EnableAutoConfiguration注解和@ComponentScan注解
1.1 先来看@SpringBootConfiguration 配置注解其实就用了@Configuration 这个注解来配置的组件
1.2 @ComponentScan 这个注解也不用多说了吧,主要是用来配置浏览路劲之类的
1.3@EnableAutoConfiguration 继续看这个自动 配置的注解
这里面有用到了我@AutoConfigurationPackage 和@Import 注解 ,其中@Import 这个注解就是用来导入AutoConfigurationImportSelector这个类的,着重看下这个类是怎么自动配置的,如下图
调用了上图调用的候选配置的一个方法,在看这个方法,如图
到这里,在看一眼就知道了,原来自动配置是加载META-INF/spring.factories这个文件的,完成了自动配置,再看下这个文件
然后通过spring.factories 在加载下面的json 文件,就完成了自动配置,json文件如下图