springBoot启动流程
2021-07-16 11:18:22 0 举报
springBoot启动流程
作者其他创作
大纲/内容
开始执行run方法
第五步
第四步
第六步
配置系统属性java.awt.heardless意义不大,可以忽略
准备banner的打印Banner printedBanner = printBanner(environment);
匹配不同类型的时间,然后从所有的监听器中把不符合条件的监听给过滤掉
计时结束,并打印启动程序进行的时长stopWatch.stop();
listeners.running(context)
加载所有的监听器
注册listenersSpringApplicationRunListeners listeners = getRunListeners(args);
this.initialMulticaster.multicastevent
设置初始化进行执行,向BeanFactory中注入一个postprocessor的对象,后续在自动装配的时候会用到applyInitializers(context);
第九步
开始计时器StopWatch stopWatch = new StopWatch();设置当前任务的id和启动的事件,方便后续的时候进行计时的操作
生成对应的对象之后在返回给调用者
starting()
根据传入的类名(key),得到需要的工厂集合的实例
每次监听器在实际做操作的时候都会执行listeners.*()
开始所有的监听器对象listeners.started(context);
符合条件的监听器会循环执行具体的自己的处理逻辑
第二步
获取一个EventPublishingRunListeners的对象,此对象会贯穿整个应用程序启动的过程,每次在进行监听器操作的时候都会从中获取具体的监听器
记载spring.factoris文件中的你的内容
第八步
listeners.comtextPrepared(context);
SpringApplication启动
第十一步
第十二步
刷新上下文环境(关键操作)中电在spring的时候会讲到refreshContext(context);
准备上下文应用对象,根据当前应用程序的类型来判断创建什么格式的上下文对象context = creatApplicationContext();
第十四步
找到程序的主类
第七步
第一步
设置系统属性,保证一些Bean不会添加到准备环境中spring.beaninfo.ignore
new SpringApplication()
第三步
判断当前应用程序的类型3种:NONESERVLETREACTIVE
第十步
获取文件中对应类的全路径
第十五步
加载所有的初始化容器
加载命令行的参数值,解析在命令行中通过--key=value输入的属性值,new DefaultApplicationArguments(args)
第十三步
根据反射得到具体的实体类对象
0 条评论
下一页