SpringBoot启动顺序

前言

每次有人问起SpringBoot的启动顺序是不是又来翻博客了?其实只需要稍微查看Spring的源码即可

步骤

  1. SpringBoot的入口org.springframework.boot.SpringApplication#run(String... args),
    这里面实现了SpringBoot程序启动的所有步骤

  2. 启动事件的顺序可以看监听器的顺序定义:org.springframework.boot.SpringApplicationRunListeners 或者 org.springframework.boot.SpringApplicationRunListener

附录

SpringBoot启动顺序

创建组件 发送事件 执行回调
DefaultBootstrapContext BootstrapRegistryInitializer#initialize
SpringApplicationRunListeners
ApplicationStartingEvent
ConfigurableEnvironment
EnvironmentPreparedEvent
Banner
ConfigurableApplicationContext
ContextPreparedEvent
ConfigurableApplicationContext#refresh
ContextRefreshedEvent
ApplicationStartedEvent
AvailabilityChangeEvent
(LivenessState.CORRECT)
ApplicationRunner#run
CommandLineRunner#run
ApplicationReadyEvent
AvailabilityChangeEvent
(ReadinessState.ACCEPTING_TRAFFIC)

提示:可通过ApplicationAvailabilityBean获取到当前LivenessState和ReadinessState的值来判断SpringBoot是否可以启动

你可能感兴趣的:(Spring,spring,boot,java,spring)