SpringBoot事件发布和监听的示例分析
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,这篇文章主要介绍SpringBoot事件发布和监听的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述ApplicationEvent以及Listener是Spring
千家信息网最后更新 2025年11月10日SpringBoot事件发布和监听的示例分析概述
事件监听的结构
事件
发布者
监听者
这篇文章主要介绍SpringBoot事件发布和监听的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
概述
ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。事件发布者并不需要考虑谁去监听,监听具体的实现内容是什么,发布者的工作只是为了发布事件而已。事件监听的作用与消息队列有一点类似。
事件监听的结构
主要有三个部分组成:
发布者Publisher
事件Event
监听者Listener
Publisher,Event和Listener的关系
事件
我们自定义事件MyTestEvent继承了ApplicationEvent,继承后必须重载构造函数,构造函数的参数可以任意指定,其中source参数指的是发生事件的对象,一般我们在发布事件时使用的是this关键字代替本类对象,而user参数是我们自定义的注册用户对象,该对象可以在监听内被获取。
@Getterpublic class MyTestEvent extends ApplicationEvent { private static final long serialVersionUID = 1L; private User user; public MyTestEvent(Object source, User user) { super(source); this.user = user; }}发布者
事件发布是由ApplicationContext对象管控的,我们发布事件前需要注入ApplicationContext对象调用publishEvent方法完成事件发布。
ApplicationEventPublisher applicationEventPublisher 虽然声明的是ApplicationEventPublisher,但是实际注入的是applicationContext
@RestController@RequestMapping("/test")public class TestController { @Autowired ApplicationContext applicationContext; @Autowired ApplicationEventPublisher applicationEventPublisher; @GetMapping("testEvent") public void test() { applicationEventPublisher.publishEvent(new MyTestEvent("dzf-casfd-111", new User("dzf-625096527-111", "xiaoming", 19))); applicationEventPublisher.publishEvent(new MyTestEvent("dzf-49687489-111", new User("dzf-625096527-111", "xiaowang", 20))); }}监听者
面向接口编程,实现ApplicationListener接口
@Componentpublic class MyTestListener implements ApplicationListener{ @Override public void onApplicationEvent(MyTestEvent myTestEvent) { System.out.println("MyTestListener : " + myTestEvent.getUser()); }}
使用@EventListener注解配置
@Componentpublic class MyTestListener2{ @EventListener(MyTestEvent.class) public void onApplicationEvent(MyTestEvent myTestEvent) { System.out.println("MyTestListener2:" + myTestEvent.getUser()); }}以上是"SpringBoot事件发布和监听的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
事件
监听
对象
发布者
内容
参数
示例
分析
函数
接口
篇文章
设计
三个
业务
之间
价值
作用
关键
关键字
兴趣
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
衡水在线学习软件开发
联想服务器光盘装完系统重启错误
镇海中医院软件开发与运维工资
医院门诊数据库管理web
vb与数据库技术是干啥的
2020阿里云最强服务器
金蝶服务器不能创建对象
ping服务器超时时间
开发环境数据库可以改数据吗
ipran专网网络安全方案
山东发布网络安全报告
安徽服务器机柜定做
网络技术挑战赛报名时间
山东信熙迩互联网科技有限公司
ide软件开发
vim文本数据库
ferace3 软件开发
金融科技赋能工业互联网金融
数据库中如何用替换语句
无锡市掌柜网络技术
杭州网络安全专业学校
数据库sdf
安卓平台软件开发的流程图
最安全的数据库在哪里
计算机数据库中储存的是
网络技术挑战赛报名时间
在海康威视做嵌入式软件开发
数据库多个字段变成主键
院网络安全部入部申请书
无锡市掌柜网络技术