天天看点

spring(3) - springboot启动过程

1. 大致过程

1.1 jre的启动

java -jar app.jar           

复制

当在服务器执行该命令的时候 : 服务器去环境变量找到 "java" 对应的执行文件路径 (例如 windows中的 java.exe) --> 执行java.exe --> 按照启动参数,调用JNI 申请内存,初始化JVM ,调用类的加载器进行类的预加载(检查,校验,加载等) 将jdk自带的核心类库加载到方法区 --> 找到主类 --> 执行 main方法

1.2 springboot的启动

SpringApplication.run(App.class, args);           

复制

1.3 执行SpringApplication构造方法

(new SpringApplication(primarySources))           

复制

构造方法

spring(3) - springboot启动过程

````

主要做了

spring(3) - springboot启动过程

// 3. 获取初始化工厂集合

的时候,扫描并初始化所有的自动装配工厂集合;

// 4. 获取初始化工厂监听集合

的时候,为自动装配工厂集合初始化了监听器集合;

1.4 执行SpringApplication构造方法

spring(3) - springboot启动过程

1.4.1 在

// 6. 刷新容器

spring(3) - springboot启动过程
  • 启动了web引擎

    默认Tomcat 详情参读 spring(1) - springboot内置Tomcat启动过程;

  • 准备benFactory -->

    // 1. 准备BeanFactiry

  • 初始化bean -->

    // 2. 通过初始化好的beanFactory进行bean的初始化,并注册到容器