SpringBoot启动流程
2023-03-01 14:36:59 0 举报
SpringBoot启动流程
作者其他创作
大纲/内容
利用bootstrapRegistryInitializers初始化DefaultBootstrapContext
构造Environment对象
调用SpringApplicationRunListener对象的contextPrepared()
调用ApplicationRunner和CommandLineRunner
调用SpringApplicationRunListener对象的starting()
调用ApplicationContextInitializer对象的initialize()
默认会拿到一个EventPublishingRunListener,它会启动过程的各个阶段发布对应的事件
1. 推测web应用类型(NONE、REACTIVE、SERVLET)2. 从spring.factories中获取BootstrapRegistryInitializer对象3. 从spring.factories中获取ApplicationContextInitializer对象4. 从spring.factories中获取ApplicationListener对象5. 推测出Main类(main()方法所在的类)
从spring.factories中获取SpringApplicationRunListener对象
把run方法传进来的类注册到Spring容器中
调用SpringApplicationRunListener对象的contextLoaded()
创建DefaultBootstrapContext
调用SpringApplicationRunListener对象的started()
run()
实例化SpringApplication对象
将run()的参数封装为DefaultApplicationArguments对象
会解析配置类、扫描、启动WebServer
打印Banner
根据应用类型创建Spring容器
刷新Spring容器
调用SpringApplicationRunListener对象的ready()
0 条评论
回复 删除
下一页