1. 大致过程
1.1 jre的启动
代码语言:javascript复制java -jar app.jar
当在服务器执行该命令的时候 : 服务器去环境变量找到 "java" 对应的执行文件路径 (例如 windows中的 java.exe) --> 执行java.exe --> 按照启动参数,调用JNI 申请内存,初始化JVM ,调用类的加载器进行类的预加载(检查,校验,加载等) 将jdk自带的核心类库加载到方法区 --> 找到主类 --> 执行 main方法
1.2 springboot的启动
代码语言:javascript复制SpringApplication.run(App.class, args);
1.3 执行SpringApplication构造方法
代码语言:javascript复制 (new SpringApplication(primarySources))
构造方法
````
主要做了
在 // 3. 获取初始化工厂集合
的时候,扫描并初始化所有的自动装配工厂集合;
在 // 4. 获取初始化工厂监听集合
的时候,为自动装配工厂集合初始化了监听器集合;
1.4 执行SpringApplication构造方法
1.4.1 在 // 6. 刷新容器
中
- 启动了web引擎 默认Tomcat 详情参读 spring(1) - springboot内置Tomcat启动过程;
- 准备benFactory -->
// 1. 准备BeanFactiry
- 初始化bean -->
// 2. 通过初始化好的beanFactory进行bean的初始化,并注册到容器