SpringBoot启动流程主要分为两步:SpringApplication对象的创建,以及SpringApplication.run方法的执行。
SpringApplication对象的创建
-
initialize()方法主要会保存主配置类,记录其全路径
-
判断其是否为web模块,主要是通过Class for name全路径是否能反射出dispatchServlet类。
-
以及加载一些ApplicationContextInitializer 和ApplicationListers从类路径下的meta-Info/Spring-factories
-
从那些配置类中找到其主要的引导类,通过类中是否有main()方法
执行run方法 -
开启StopWatch代码监控
-
生命Ioc容器
-
创建环境变量evieroment对象,以及回掉SpringApplication对象中的ApplicationContextInitializer和ApplicationListers,打印banner等行为
-
创建IOC容器,并判断会创建webIOC还是普通的annocationIOC,
-
rrefreshContext()刷新容器,将需要自动装配的组件装到IOc中
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)