SpringBoot事件发布和监听的示例分析
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要介绍SpringBoot事件发布和监听的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述ApplicationEvent以及Listener是Spring
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
精益设备管理软件开发
pc连接服务器配置
数据库 拼音 查询
外包软件开发 免增值税吗
苹果的x-file迅雷服务器
河北戴尔服务器续保一年多少钱
如何管理邮箱服务器中的邮件
客户管理软件开发
数据库修改arcgis
数据库 类型 自定义
网络技术应用基础问题
相册数据库设计
服务器刷鱼塔
专业放心的服务器主动管理
服务器无限循环重启硬盘灯不亮
宝山区工商数据库系统研发收购价
服务器电源管理找不到
网络技术挑战赛的目标与任务
西安工商银行软件开发中心社招
宝信软件开发友谊路
drop数据库表还能恢复吗
苹果的x-file迅雷服务器
辽宁运营网络技术价格
云服务器ecs套路
互联网协会金融科技
如何快速学习网络安全产品
湖南染色体数据库中标公告
徐州森淼网络技术有限公司
手机设置网络安全宣传周
大学生能做的数据库项目