springboot启动流程
2021-03-22 23:01:05 19 举报
登录查看完整内容
SpringBoot启动流程主要包括以下几个步骤: 1. 创建SpringApplication对象,加载配置文件。 2. 扫描包路径,找到主类。 3. 准备环境,包括环境变量、系统属性等。 4. 创建ApplicationContext对象,初始化容器。 5. 刷新ApplicationContext对象,完成Bean的注册和注入。 6. 发布服务,启动内置Servlet容器。 7. 监听端口,等待请求。 SpringBoot通过自动配置和约定优于配置的方式,简化了传统Spring应用的配置和部署过程,使得开发者能够更快速地构建和运行应用程序。
作者其他创作
大纲/内容
符合条件的监听器会循环执行具体的自己的处理所及
获取一个eventPublishingRunListeners的对象此对象会贯穿整个应用程序启动的过程,每次在进行监听器操作的时候,都会从中获取具体的监听器
加载命令行的参数值,解析在命令行中通过--key=value输入的属性值,封装到ApplicationArguments对象中new SimpleCommandLineArgsParser().parse(args)
第十步
准备banner打印Banner printeBanner=printBanner(environment)
开始执行run方法
listeners.running(context)
准备好之后的操作,默认什么都不做,方便拓展refresh(context,applicationArguments)
每次监听器在实际操作时候都会执行listeners.*()
第五步
第十三步
第二步
配置系统属性java.awt.headless意义不大。可以忽略
第十二步
设置系统属性,保证某些bean不会添加到准备的环境中spring.beaninfo.ignore
this.initialMulticaster.multicastEvent
ConfigurableApplicationContext开启计时器StopWatch stopWatch=new StopWatch();设置当前任务的id和启动的时间,方便后续的时候进行计时的操作
计时结束,并打印启动程序运行的时长stopWatch.stop();
springApplication启动
准备上下文应用对象,根据当前应用程序的类型来判断创建什么格式的上下文对象context=createApplicationContext();
new springApplication()
判断当前应用程序类型NONESERVLETREACTIVE
注册listenersSpringApplicationRunListeners listeners=getRunListeners(args)
匹配不同类型的时间,然后从所有的监听器中把不符合条件的监听器给过滤掉
第四步
第九步
找到程序运行的主类
刷新上下文环境(关键操作!)重点在Spring中也用到了refreshContext(context)
执行start方法
加载所有的初始化容器
初始化
第十一步
开始所有的监听器对象listeners.started(context);
第八步
第七步
加载所有的监听器
第六步
第三步
第一步
第十四步
收藏
0 条评论
回复 删除
下一页