springboot启动大致过程

52 阅读1分钟
  • 创建SpringApplication实例。
  • 从"META-INF/spring.factories"中收集各种启动需要的初始化器和监听器。
  • 准备环境,加载配置。ConfigDataEnvironmentPostProcessor是配置数据环境处理器,2.4.0版本后顶替ConfigFileApplicationListener进行配置加载。
  • 创建应用上下文,初始化容器。
  • 准备上下文,将所有主来源如Application的bean定义注册到应用程序上下文中。
  • 刷新上下文
    • 执行bean工厂处理器,扫描并注册bean的定义到上下文中。
    • 注册bean处理器。
    • 初始化事件监听多路广播器
    • 创建web服务器对象
    • 初始化所有剩下的非懒加载的单例
    • WebServerStartStopLifecycle启动web服务器
    • 触发ContextRefreshedEvent事件,如果是springcloud项目则初始化RefreshScope注解的bean
  • 执行ApplicationRunner和CommandLineRunner的run方法