1. 通过SpringFactoriesLoader工厂加载类加载。
  2. 使用key为applicationListener进行加载。

3.Spring Boot ApplicationListener事件监听机制实现解析

Spring Boot事件监听模式

监听模式四要素:

  1. 事件。
  2. 监听器
  3. 广播器
  4. 触发机制

Spring Boot内置了以下事件

  1. ApplicationStartingEvent--->run方法首次启动时立即调用
  2. ApplicationEnvironmentPreparedEvent--->环境准备之后 创建Appplicationcontex之前
  3. ApplicationContextInitializedEvent--->创建applicationContext之后 未加载任何bean之前
  4. ApplicationPreparedEvent--->在应用程序上下文已加载但尚未刷新之前调用
  5. ApplicationStartedEvent--->上下文已刷新应用程序已启动但尚未调用 未调用applicationRunner和CommandLineRunner
  6. ApplicationReadyEvent--->调用所有CommandLineRunner和applicationRunner之后
  7. ApplicationFailedEvent--->异常错误时

获取监听器列表流程

3.Spring Boot ApplicationListener事件监听机制实现解析


自定义监听器实现

  1. 实现方式实现ApplicationListener接口,指定泛型。
  2. 可以有三种是实现方式,第一,配置META-INF,第二硬编码方式在SpringApplication对象下addListener。第三,使用配置文件以context.listener.classes可以实现。第四,实现SmartApplicationListener,在supportsEventType中声明自己关注的事件。
  3. 分别给每个自定义监听器的实现加一个@Order。

常见问题小结

  1. 监听模式:监听四要素。
  2. SpringBoot关于监听器相关的实现类有哪些:BackgroundPreinitializer,ClearCachesApplicationListener,ParentContextCloserApplicationListener,CloudFoundryVcapEnvironmentPostProcessor、FileEncodingApplicationListener、AnsiOutputApplicationListener、DelegatingApplicationListener、ClasspathLoggingApplicationListener、LoggingApplicationListener、LiquibaseServiceLocatorApplicationListener
  3. 介绍一下监听事件的触发机制?
  4. 如何自定义实现系统监听器及注意事项?
  5. 实现ApplicationListener接口与SmartApplicationListener接口的区别。

相关文章:

  • 2018-12-11
  • 2018-05-07
  • 2019-06-14
  • 2018-07-27
  • 2020-04-19
  • 2021-09-16
  • 2019-03-06
  • 2020-06-12
猜你喜欢
  • 2020-02-20
  • 2021-09-05
  • 2018-05-10
  • 2021-06-27
  • 2021-01-25
  • 2021-11-30
  • 2020-11-12
  • 2021-07-20
相关资源
相似解决方案