springboot启动源码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot启动源码相关的知识,希望对你有一定的参考价值。

参考技术A 一、找到启动类
1.java -jar xxx.jar
java会找到MANIFEST.MF文件的Main-Class,启动springboot JarLauncher的main方法

2.JarLauncher.launch方法大致过程
1)获取到BOOT-INF下面的classes文件与lib包下面的jar
2)创建LaunchedURLClassLoader,放入线程上下文,用于加载jar(可以加载jar中jar)
3.获取到Start-Class启动类,利用反射,调用main方法,这样就能到达我们使用的main方法了。
二、Main方法启动

1.初始化SpringApplication
1). 获取启动类
2).获取web应用类型
3).读取了对外扩展的ApplicationContextInitializer ,ApplicationListener
4).根据main推算出所在的类

2.启动
2.1)启动事件

2.2 步骤
1).启动事件,通知我要启动了
listeners.starting();
2).获取环境运行的参数,通过environmentPrepared会初始化properties和yml文件。
3).根据容器类型获取applicationcontext,SERVLET获取AnnotationConfigServletWebServerApplicationContext
4).填充applicationcontext,并发布上下文已准备事件(contextPrepared),加载主类配置,发布contextLoaded事件
5).执行applicationcontext.refresh方法,并启动内置tomcat。
6).发布started和running事件

以上是关于springboot启动源码的主要内容,如果未能解决你的问题,请参考以下文章

springboot启动源码

SpringBoot源码学习系列之启动原理简介

SpringBoot整合SSM三大框架源码剖析之SpringBoot源码剖析

SpringBoot3.0源码启动流程源码解析 • 上

Springboot 2启动源码流程

Springboot启动源码详解