zoukankan      html  css  js  c++  java
  • SpringBoot启动流程图

    代码

    @startuml
    client -> SpringApplication : run(Class<?>, String[])
    SpringApplication -> SpringApplication : new
    activate SpringApplication #ABA
    	SpringApplication -[#F2D]> ApplicationContextInitializer : 加载【META-INF/spring.factories】初始化ApplicationContextInitializer
    	SpringApplication -> ApplicationListener : 加载【META-INF/spring.factories】初始化ApplicationListener
    deactivate
    SpringApplication -> SpringApplication : run
    activate SpringApplication #FBF
    	SpringApplication -> SpringApplicationRunListener : 加载【META-INF/spring.factories】初始化SpringApplicationRunListener(SpringApplication,String[])
    	SpringApplication -[#18F]> SpringApplicationRunListeners : 使用SpringApplicationRunListener初始化SpringApplicationRunListeners
    	SpringApplication -[#18F]> SpringApplicationRunListeners : starting()【1.启动中】
    	SpringApplication -[#F11]> ApplicationArguments : new DefaultApplicationArguments(String[])
    	SpringApplication -> ConfigurableEnvironment : 根据当前环境初始化、配置
    	SpringApplication -[#18F]> SpringApplicationRunListeners : environmentPrepared()【2.环境准备完成】
    	SpringApplication -> SpringApplication : bindToSpringApplication 绑定配置到当前SpringApplication对象,前缀spring.main
    	SpringApplication -> Banner : 打印banner
    	SpringApplication -[#296]> ConfigurableApplicationContext : 反射初始化ConfigurableApplicationContext
    	SpringApplication -> SpringBootExceptionReporter : 加载【META-INF/spring.factories】初始化SpringBootExceptionReporter(ConfigurableApplicationContext)
    	SpringApplication -> SpringApplication : prepareContext
    	activate SpringApplication #ADC
    		SpringApplication -[#296]> ConfigurableApplicationContext : setEnvironment
    		SpringApplication -[#296]> ConfigurableApplicationContext : postProcessApplicationContext
    		SpringApplication -[#F2D]> ApplicationContextInitializer : initialize
    		SpringApplication -[#18F]> SpringApplicationRunListeners : contextPrepared()【3.上下文初始化完成】
    		SpringApplication -> BeanDefinitionLoader : 创建加载器
    		SpringApplication -> BeanDefinitionLoader : load()加载元数据
    		SpringApplication -[#18F]> SpringApplicationRunListeners : contextLoaded()【4.上下文加载完成】
    	deactivate
    	SpringApplication -[#296]> ConfigurableApplicationContext : refresh()初始化上下文bean
    	SpringApplication -[#18F]> SpringApplicationRunListeners : started()【5.上下文启动完成】
    	SpringApplication -[#296]> ConfigurableApplicationContext : 获取ApplicationRunner实例
    	SpringApplication -[#296]> ConfigurableApplicationContext : 获取CommandLineRunner实例
    	SpringApplication -> SpringApplication : ApplicationRunner和CommandLineRunner整体排序后调用
    	SpringApplication -[#18F]> SpringApplicationRunListeners : running()【6.上下文运行中】
    deactivate
    @enduml
    
  • 相关阅读:
    《卓有成效的管理者》读后感
    小课堂week13 Clean Code Part2
    小课堂Week12 Clean Code Part1
    小课堂Week11 会说话的代码
    小课堂Week10 例外处理设计的逆袭Part3
    Spark菜鸟学习营Day6 分布式代码运行调试
    UML(一) 类图及类间关系
    分布式事务(一)两阶段提交及JTA
    Java线程间通信方式剖析——Java进阶(四)
    Java进阶(三)多线程开发关键技术
  • 原文地址:https://www.cnblogs.com/zby9527/p/14785435.html
Copyright © 2011-2022 走看看