Skip to content

Latest commit

 

History

History

spring-listener

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

spring 事件/生命周期

可用类型

org.springframework.boot.SpringApplicationRunListener

处理程序启动相关生命周期

需要在spring.factories中定义。

Listener.java

org.springframework.context.ApplicationListener

处理程序运行相关生命周期

可以使用@Component配置。

泛型可限定接收事件类型

RunListener.java

org.springframework.context.SmartLifecycle

处理生命周期,用处不大

可以使用@Component配置

MyLifecycle.java

执行顺序

  1. (系统)创建ConfigurableBootstrapContext
  2. 创建SpringApplicationRunListener
  3. SpringApplicationRunListener#starting
  4. SpringApplicationRunListener#environmentPrepared
  5. (系统)打印Banner
  6. SpringApplicationRunListener#contextPrepared
  7. (系统)关闭ConfigurableBootstrapContext
  8. SpringApplicationRunListener#contextLoaded
  9. BeanFactoryPostProcessor
  10. (系统)初始化tomcat
  11. 初始化其他组件(其他框架、用户组件)
  12. 创建ApplicationListener
  13. ApplicationListener接收事件ServletWebServerInitializedEvent
  14. SmartLifecycle#start
  15. ApplicationListener接收事件ContextRefreshedEvent
  16. ApplicationListener接收事件ApplicationStartedEvent
  17. ApplicationListener接收事件AvailabilityChangeEvent, state: CORRECT
  18. SpringApplicationRunListener#started
  19. 执行CommandLineRunner
  20. ApplicationListener接收事件ApplicationReadyEvent
  21. ApplicationListener接收事件AvailabilityChangeEvent, state: ACCEPTING_TRAFFIC
  22. SpringApplicationRunListener#ready
  23. (系统)SpringApplication#run方法结束
  24. ============================== 程序运行 ==============================
  25. (用户)发送http请求结束后: ApplicationListener接收事件ServletRequestHandledEvent
  26. (用户)发布自定义事件时: ApplicationListener接收事件
  27. ============================== 程序退出 ==============================
  28. ApplicationListener接收事件AvailabilityChangeEvent, state: REFUSING_TRAFFIC
  29. ApplicationListener接收事件ContextClosedEvent
  30. SmartLifecycle#stop
  31. 执行DisposableBean#destroy