Spring事件驱动模型

1Spring事件驱动模型

1.1环境

JDK1.8
SpringBoot 2.2.1.RELEASE

1.2概述

事件驱动模型分为三类角色:事件角色、事件发布者角色、事件监听者角色。

1.3事件角色

类图如下图所示:

1.3.1EventObject

完整路径:java.util.EventObject
此类为事件的基类,其结构如下图所示:

其中:
source为事件发布者的引用。

1.3.2ApplicationEvent

完整路径:org.springframework.context.ApplicationEvent
此类为Spring中所有application事件的基类。
结构图如下图所示:

其中:
timestamp为事件发生时的系统时间。

1.3.3SpringApplicationEvent

完整路径:org.springframework.boot.context.event.ApplicationReadyEvent
此类用于关联SpringApplication,即:事件的source为SpringApplication。
结构图所下图所示:

1.3.4SpringApplicationEvent子类

除ApplicationFailedEvent以外,其他event顺序即为实际发生的先后顺序。
ApplicationStartingEvent
此事件为SpringApplication已启动之后但是Environment或ApplicationContext可用之前。
ApplicationEnvironmentPreparedEvent
此事件为Enviroment准备完成后、ApplicationContext创建之前的事件。
ApplicationContextInitializedEvent
此事件为ApplicationContext初始化后、bean definitions加载前的事件。
ApplicationPreparedEvent
此事件为ApplicationContext准备完成但还没有refresh后、bean definitions装载前、Enviroment已准备完毕的事件。
ApplicationStartedEvent
此事件为ApplicationContext refresh后但是ApplicationRunner和CommandLineRunner被调用之前的事件。
ApplicationReadyEvent
此事件为应用可以提供服务的事件。
ApplicationFailedEvent
此事件为SpringApplication启动失败后的事件。

1.4事件发布者角色

ApplicationEventPublisher为事件发布者接口,ApplicationContext接口继承ApplicationEventPublisher。

1.5事件监听者角色

1.5.1EventListener

完整路径:java.util.EventListener
此类为事件监听者的基类,所有的事件监听者必须是该类的子类。

1.5.2ApplicationListener

完整路径:org.springframework.context.ApplicationListener
此类为Spring中事件监听者的基类,Spring通过该类的泛型来判断某事件是否为该监听者所需事件从而进行事件的过滤。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值