目录
一、springboot启动配置原理
由于springboot的启动时通过springbootapplication.run方法开始的,那我们就从这里作为分析的源头
我们可以看到它首先创建了SpringApplication对象 ,在运行run方法
先分析创建对象SpringApplication
将 主配置类source保存到source中
判断是不是web应用
设置初始化
初始化的核心在于调用了getSpringFactoriesInstances方法
总结初始化:从类路径下找到META-INF/spring.factories配置的所有ApplicationContextInitializer;然后保存起来
继续往下看到设置监听器
同理上面的初始化
从多个配置类中找到哪个有main方法的主配置类
现在SpringApplication已经创建好了,然后是运行run()方法了
分析run方法
获取运行时监听器
通过获得spring工厂来得到监听器(从类路径线下META-INF/spring.facotries得到监听器)
获取都之后,启动监听器
封装了命令行参数
准备环境
打印图标
创建IOC容器
通过反射创建IOC容器
出现异常以后的信息处理
准备(将相关对象放入到容器中)IOC容器
刷新容器(初始化所有的bean以及相关配置,如果是web应用还会创建嵌入式的tomcat对象)
从ioc容器中获取所有的ApplicationRunner(先回调)和CommandLineRunner进行回调,
所有的SpringApplicationRunListener回调finished方法
最后返回IOC容器