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

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

v2-ced3623e606065535b2ca82c507c1b64_b.jpg

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--->异常错误时

获取监听器列表流程

v2-ce56f49617da528ed7dadc3072e9cd98_b.jpg


自定义监听器实现

  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接口的区别。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值