SpringBoot启动流程
2022-08-02 11:38:17 0 举报
SpringBoot启动流程详介绍,不用看源码也能了解整个运行过程
作者其他创作
大纲/内容
this.initialMulticaster.multicastEvent
判断当前应用的类型noneServletReactive
第十四步:开始所有的监听对象listeners.started(context);
第一步:开启计时器StopWatch stopWatch = new StopWatch();设置当前任务的id和启动时间,方便启动结束时进行计时操作
starting()
加载spring.factory文件中的内容
符合条件的执行自己的处理逻辑
加载所有的初始化容器
第七步:准备Banner的打印,Banner printedBanner = printBanner(environment);
每次监听器实际做操作的时候都会执行listeners.()
设置初始化进行执行,向beanFactory中注入三个postprocessor的对象,后续在自动装配的时候用到applyInitializers(context)
SpringApplication启动
第三步:注册监听listenersSpringApplicationRunListeners listeners = getRunListeners(args);
根据发射得到对应类的实体对象
第六步:设置系统属性,保证某些bean不会添加到装备的环境中configureIgnoreBeanInfo
listeners.contextPrepared(context);
第四步:加载命令行的参数,解析在命令行中通过key-value输入的属性值,封装到ApplicationArguments中,new SimpleCommandLineArgsParser().parse(args)
第十五步:listeners.running(context);
根据传入的类名(key),得到需要的工厂集合实例
生成对应的类的对象后返回给调用者
run方法
第十三步:计时结束,打印启动程序运行的时长stopWatch.stop();
加载所有的监听器
找到程序运行的主类
new SpringApplication()
匹配不同类型的监听器,然后从所有的监听器里面过滤掉不符合条件的
第十二步:准备好之后的操作,默认什么都不做,方便扩展afterRefresh()
listeners.contextLoaded(context);
获取文件中对应类的全路径
获取一个SpringApplicationRunListener的对象,此对象会需贯穿整个应用程序启动的过程,每次在进行监听器操作的时候都会从中获取具体的监听器
第十一步:刷新上下文环境(关键步骤),重点关联之前Spring的IOC容器怎么创建bean对象refreshContext(context);
第二步:设置系统属性java.awt.headless
第八步:准备上下文应用对象,根据当前应用程序的类型来判断需要创建什么类型的上下文对象,context = createApplicationContext();
收藏
0 条评论
下一页