当前位置:首页 >> 跨学科知识体系 >> 【SpringBoot】解析Springboot事件机制,事件发布和监听,乐鱼播放器

【SpringBoot】解析Springboot事件机制,事件发布和监听,乐鱼播放器

cpugpu芯片开发光刻机 跨学科知识体系 1
文件名:【SpringBoot】解析Springboot事件机制,事件发布和监听,乐鱼播放器 【SpringBoot】解析Springboot事件机制,事件发布和监听

解析Springboot事件机制,事件发布和监听 一、Spring的事件是什么二、使用步骤2.1 依赖处理2.2 定义事件实体类2.3 定义事件监听类2.4 事件发布 三、异步调用3.1 启用异步调用3.2 监听器方法上添加 @Async 注解

一、Spring的事件是什么

Spring的事件监听(也叫事件驱动)(Application Event)为Bean与Bean之间的消息通信提供了支持,是观察者模式的一种实现,只要是观察者模式,就含有主题(针对该主题的事件),发布者(发布主题或事件),订阅者(监听主题的人)。有三个部分组成,事件(ApplicationEvent)、监听器(ApplicationListener)和事件发布操作。

它的作用:使用事件机制我们可以将相互耦合的代码解耦,从而方便功能拓展和调整。

事件机制中有三种角色:发布事件者、事件、事件监听者

发布事件者:发布事件的对象事件:事件的具体内容事件监听者:等待处理时间的对象 二、使用步骤 2.1 依赖处理

SpringBoot相应的依赖已经包含在 context 包了,所以我们使用的时候不需要在 pom.xml 文件中再单独添加。如图所示:

2.2 定义事件实体类

事件类需要继承 ApplicationEvent 类

示例:定义一个报警事件,属性是报警实体类,也可以是其他字段或者实体根据业务自定义

package com.example.demozmq.event;import org.springframework.context.ApplicationEvent;/*** 定义一个报警事件,属性是报警实体类*/public class AlarmEvent extends ApplicationEvent {private PfsAlarm pfsAlarm;public AlarmEvent(Object source, PfsAlarm pfsAlarm) {super(source);this.pfsAlarm = pfsAlarm;}public PfsAlarm getPfsAlarm() {return pfsAlarm;}} 2.3 定义事件监听类

事件监听类,实现 ApplicationListener 接口,泛型是<自定义的事件实体类>

package com.example.demozmq.listener;import com.example.demozmq.event.AlarmEvent;import java.util.concurrent.TimeUnit;import lombok.extern.slf4j.Slf4j;import org.springframework.context.ApplicationListener;import org.springframework.stereotype.Component;@Slf4j@Componentpublic class AlarmListener implements ApplicationListener<AlarmEvent> {@Overridepublic void onApplicationEvent(AlarmEvent alarmEvent) {log.info(">>>>>>>>>>>>>>>>>>> 执行事件监听开始,调用参数是:{}", alarmEvent.getPfsAlarm());try {// 此处是执行具体的业务处理逻辑TimeUnit.SECONDS.sleep(100);log.info(">>>>>>>>>>>>>>>>>>> 执行具体的任务完成!");} catch (Exception e) {e.printStackTrace();}log.info(">>>>>>>>>>>>>>>>>>> 执行事件监听结束");}}

如下图所示实际的应用示例:

2.4 事件发布

以下两处皆为事件发布,只是不同业务而已,可以参照哈

三、异步调用 3.1 启用异步调用

3.2 监听器方法上添加 @Async 注解

本文完结!

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接