当前位置: 首页 > article >正文

【Spring 事件机制】

Spring 事件机制

组成:

  • 事件源:事件对象的产生者,任何一个事件都有一个来源。

  • 事件:基类是 EventObject ,spring事件 ApplicationEvent 抽象类继承EventObject 。

  • 事件监听器:基类是 EventListener 接口,spring 事件监听器 ApplicationListener 接口继承 EventListener 。

值得一提的是,事件对象通常代表一类而非一个事件,合理的做法是将一类事件而非一个事件概念融合起来。

创建事件直接继承 ApplicationEvent 类。注意:需要super(source); source可随便new一个Object,或者传该事件的说明。

Spring内置事件类型:

Spring 提供了以下5种标准的事件:

  • 上下文更新事件(ContextRefreshedEvent):在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发。
  • 上下文开始事件(ContextStartedEvent):当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。
  • 上下文停止事件(ContextStoppedEvent):当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件。
  • 上下文关闭事件(ContextClosedEvent):当ApplicationContext被关闭时触发该事件。容器被关闭时,其管理的所有单例Bean都被销毁。
  • 请求处理事件(RequestHandledEvent):在Web应用中,当一个http请求(request)结束触发该事件。如果一个bean实现了ApplicationListener接口,当一个ApplicationEvent 被发布以后,bean会自动被通知。

业务方监听spring内置事件举例:

比如要监听ContextRefreshedEvent的时可以实现ApplicationListener接口,并且传入要监听的事件。

自定义事件:

事件发布:

ApplicationContext具有发布事件的能力。这是因为该接口继承了ApplicationEventPublisher接口。


http://www.kler.cn/a/583177.html

相关文章:

  • 《云原生监控体系构建实录:从Prometheus到Grafana的观测革命》
  • java如何在linux服务器创建文件excel并把循环插入每一行的后端查出来的数据,每天新建一个excel带时间的
  • MySQL数据库的相关语句
  • 船舶制造内检革新 内检实验室LIMS系统如何破局行业痛点
  • Git使用(二)--如何配置 GitHub 远程仓库及本地 Git 环境
  • git 撤销某次提交的上交到远程服务器的commit提交,此提交后面的commit需要保留【deeepseek生成】
  • 【每日学点HarmonyOS Next知识】顶部状态栏、文本最大行数后缀、弹窗背景、状态栏颜色、导航
  • 【零基础入门unity游戏开发——进阶篇】Unity Microphone类处理麦克风相关信息,录制音频并实时处理或保存录制的音频数据
  • 鸿蒙ArkTs如何实现v-html的功能,显示富文本内容?
  • c#面试题12
  • (二)seacmsv9注入管理员账号密码+orderby+limit
  • 在windows10系统上搭建npm仓库源
  • 电子文档安全管理系统 V6.0 resources/backup存在任意文件下载漏洞(DVB-2025-8794)
  • Redis-配置文件
  • 7-3 谁先倒
  • 红帆 iOffice M2 移动端密码爆破的渗透测试思路,绕过客户端实现Burpsuite批量跑,分享渗透思路,共建网络安全
  • K8s 1.27.1 实战系列(八)Service
  • Jenkins 安装插件后构建成功但未启动容器的解决方法
  • linux抓包经历
  • 【Java】并发编程实战:单例模式 + 阻塞队列的终极实现指南