zoukankan      html  css  js  c++  java
  • Spring Boot启动流程

    1.创建SpringApplication实例

    1)  在SpringApplicaiton构造器中调用initialize(sources)方法。initialize方法中,将sources转换成list加到this.sources属性中。

    2) 判断是否为web环境,在类路径下是否可以加载到Servlet和ConfigurableWebApplicationContext

    3) 设置初始化器,从META-INF/spring.factories处读取配置文件中Key为:org.springframework.context.ApplicationContextInitializer的value,进行实例化操作 

    4) 设置监听器,StopWatch主要是监控启动过程,统计启动时间,检测应用是否已经启动或者停止。

    5) 推断应用入口类,通过寻找main方法找到启动主类。

    2.执行SpringApplication.run()

    1) 获取SpringApplicationRunListeners,(也是通过META-INF/spring.factories),默认加载的是EventPublishingRunListener。启动监听,调用RunListener.starting()方法。

    2) 根据SpringApplicationRunListeners以及参数来准备环境,获取环境变量environment,将应用参数放入到环境变量持有对象中,监听器监听环境变量对象的变化(listener.environmentPrepared),打印Banner信息(SpringBootBanner)

    3) 创建ApplicationContext(spring上下文AnnotationConfigEmbeddedWebApplicationContext)

    4) 创建FailureAnalyzer, 用于触发从spring.factories加载的FailureAnalyzer和FailureAnalysisReporter实例

    5) spring上下文前置处理prepareContext

    6) spring上下文刷新refreshContext

    7) spring上下文后置处理afterRefresh(ApplicationRunner,CommandLineRunner接口实现类的启动),返回上下文对象

  • 相关阅读:
    当今优质男人的硬指标15条
    真正爱你的男人
    二十条人生建议
    女孩嫁人前先看看这十句话
    MM拒绝GG求爱的几种方法
    让你受用一生的爱情经典
    男女朋友们的经典称呼
    一道终身受用的测试题
    爱情,你在哪里?
    经典短篇:女人心疼男人的10种方式
  • 原文地址:https://www.cnblogs.com/zeussbook/p/11748767.html
Copyright © 2011-2022 走看看