SpringBoot启动原理
SpringBoot启动SpringBoot因为内置了tomcat或jetty服务器,不需要直接部署War文件,所以SpringBoot的程序起点是一个普通的主函数。主函数如下:
123456@SpringBootApplicationpublic class SpringbootStudyApplication { public static void main(String[] args) { SpringApplication.run(SpringbootStudyApplication.class, args); }}
整个SpringBoot的启动过程其实都是通过@SpringBootApplication注解和SpringApplication.run方法来实现的。
整个启动的过程可以概括为:
读取所有依赖的META-INF/spring.factories文件,该文件指明了哪些依赖可以被自动加载。
根据importSelector类选择加载哪些依赖,使用conditionOn系列注解排除掉不需要的配置文件
将剩余的配置文件所代表的bean加载到IOC容器中。