• SprigBoot核心技术


    启动原理 运行流程 自动配置原理

    一、启动原理

    SpringApplication.run(主程序类)
    – new SpringApplication(主程序类)
    • 判断是否web应用
    • 加载并保存所有ApplicationContextInitializer(META-INF/spring.factories),
    • 加载并保存所有ApplicationListener
    • 获取到主程序类
    – run()
    • 回调所有的SpringApplicationRunListener(META-INF/spring.factories)的starting
    • 获取ApplicationArguments
    • 准备环境&回调所有监听器( SpringApplicationRunListener )的environmentPrepared
    • 打印banner信息
    • 创建ioc容器对象(
    – AnnotationConfigEmbeddedWebApplicationContext(web环境容器)
    – AnnotationConfigApplicationContext(普通环境容器)

    – run()
    • 准备环境
    – 执行ApplicationContextInitializer. initialize()
    – 监听器SpringApplicationRunListener回调contextPrepared
    – 加载主配置类定义信息
    – 监听器SpringApplicationRunListener回调contextLoaded
    • 刷新启动IOC容器;
    – 扫描加载所有容器中的组件
    – 包括从META-INF/spring.factories中获取的所有EnableAutoConfiguration组件
    • 回调容器中所有的ApplicationRunner、CommandLineRunner的run方法
    • 监听器SpringApplicationRunListener回调finished

    启动流程:

       1、 创建SpringApplication对象,加载并保存所有ApplicationContextInitializer(META-INF/spring.factories),从类路径下找到配置的所有applicationListener保存起来

       2、 运行run方法

  • 相关阅读:
    CF div2 332 A
    vector resize 错误用法
    linux命令之 chown
    dlmalloc 编译 链接
    C++ 类 访问限制
    C++ 编译多态 运行多态
    libevent 编译 Windows
    浮点数小记
    NYOJ 435 棋盘覆盖(二)
    HDU 3555 Bomb 简单数位DP
  • 原文地址:https://www.cnblogs.com/toov5/p/10781196.html
Copyright © 2020-2023  润新知