SpringBoot 启动原理源码跟踪

1   Springboot 启动主要是由@SpringBootApplication 这个注解来完成的,而 @SpringBootApplication 由以下几个注解组成 

SpringBoot 启动原理源码跟踪

这里面有三个核心注解,那就是@SpringBootConfiguration配置注解和@EnableAutoConfiguration注解和@ComponentScan注解

1.1 先来看@SpringBootConfiguration 配置注解其实就用了@Configuration  这个注解来配置的组件

SpringBoot 启动原理源码跟踪
1.2 @ComponentScan 这个注解也不用多说了吧,主要是用来配置浏览路劲之类的

[email protected] 继续看这个自动 配置的注解

SpringBoot 启动原理源码跟踪

这里面有用到了我@AutoConfigurationPackage 和@Import 注解 ,其中@Import 这个注解就是用来导入AutoConfigurationImportSelector这个类的,着重看下这个类是怎么自动配置的,如下图

SpringBoot 启动原理源码跟踪

调用了上图调用的候选配置的一个方法,在看这个方法,如图

SpringBoot 启动原理源码跟踪到这里,在看一眼就知道了,原来自动配置是加载META-INF/spring.factories这个文件的,完成了自动配置,再看下这个文件

SpringBoot 启动原理源码跟踪

然后通过spring.factories 在加载下面的json 文件,就完成了自动配置,json文件如下图

SpringBoot 启动原理源码跟踪