spring-event

SpringApplicatonEvent 启动过程中的事件处理

Event-Process

ApplicationStartingEvent

  • 应用启动开始时,刚完成SpringApplication的实例化
  • 接着完成如下事:
    • 推断webApplicationType
    • 给字段initilizers赋值:通过SPI方式加载spring.factories中的配置
    • 给字段listeners赋值:通过SPI方式加载监听器
  • 发送ApplicationStartingEvent事件,触发对应的监听器的执行
    • 默认是同步执行
    • 默认的监听器是LoggingApplicationListener、BackGroundPreinitializer

ApplicationEnvironmentPreparedEvent

Environment是Spring的基础元数据。
完成大事记:

  • 封装命令行参数到ApplicationArguments
  • 创建ConfigConfigurableEnvironment实例
  • 发送ApplicationEnvironmentPreparedEvent事件,触发对应的监听器的执行
  • 有九个监听器处理该事件
    • todo

ApplicationContextInitializedEvent

ApplicationPreparedEvent

ApplicationStartedEvent

ApplicationReadyEvent