浅谈Spring-boot事件监听
发布时间 - 2026-01-11 03:23:03 点击率:次springboot的事件监听:为bean之间的消息通信提供支持。当一个bean做完一件事以后,通知另一个bean知晓并做出相应处理。这时,我们需要另一个bean,监听当前bean所发生的事件。

实现步骤:四个步骤,四种方式
第一种方式
1、自定义事件,一般是继承ApplicationEvent抽象类
2、定义事件监听器,一般是实现ApplicationListener接口
3、1)把监听器加入到SpringApplication中:ApplicationListener.addListener();然后发布事件
2)或放置到spring容器:@Conponent
3)或在application.properties配置文件中配置context.listener.classes=监听器全类名
4)或编写一个类,纳入spring容器中,编写一个带参的方法,参数为事件的父类或需要监听的事件,加上@EventListener
4、发布事件
第一步:自定义事件,继承ApplicationEvent抽象类
public class MyApplicationEvent extends ApplicationEvent {
public MyApplicationEvent(Object source) {
super(source);
}
}
第二步:自定义事件监听器,实现ApplicationListener接口
public class MyApplicationListener implements ApplicationListener<MyApplicationEvent> {
@Override
public void onApplicationEvent(MyApplicationEvent myApplicationEvent) {
System.out.println(myApplicationEvent.getClass().getName() + "被监听......");
}
}
第三、四步:把监听器加入spring中,然后发布事件
@SpringBootApplication
public class BlogApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(BlogApplication.class, args);
//把监听器加入到SpringApplication中
context.addApplicationListener(new MyApplicationListener());
//发布事件
context.publishEvent(new MyApplicationEvent(new Object()));
context.close();
}
}
第二种方式:换一种方式将监听器加入spring容器中(只需修改BlogApplication)
通过@component注解,将监听器加入spring容器中
BlogApplication.class
第三种方式:在application.properties配置文件中配置context.listener.classes=监听器全类名
spring.properties
第四种方式:编写一个类MyEventHandler,替代上文中的MyApplicationListener,将其纳入spring容器中,编写一个带参的方法,参数为事件的父类或需要监听的事件,加上@EventListener。(参数的范围越广泛,监听到的事件越多)
MyEventHandler.class
至此,springboot的四种事件监听方式就介绍完毕啦~,以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Springboot事件监听
# spring
# boot
# 监听
# 事件监听
# 详解SpringBoot 发布ApplicationEventPublisher和监听Applica
# springboot 事件监听的实现方法
# Spring Boot应用事件监听示例详解
# SpringBoot事件发布和监听详解
# 自定义
# 四种
# 配置文件
# 抽象类
# 只需
# 将其
# 一件事
# 越多
# 做完
# 第二步
# 第二种
# 第一种
# 大家多多
# 第三种
# 换一种
# 第四种
# classes
# 全类名
# EventListener
# class
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
如何快速搭建二级域名独立网站?
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
如何在七牛云存储上搭建网站并设置自定义域名?
大同网页,大同瑞慈医院官网?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
详解阿里云nginx服务器多站点的配置
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
高防服务器租用指南:配置选择与快速部署攻略
javascript中对象的定义、使用以及对象和原型链操作小结
桂林网站制作公司有哪些,桂林马拉松怎么报名?
文字头像制作网站推荐软件,醒图能自动配文字吗?
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
轻松掌握MySQL函数中的last_insert_id()
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何用腾讯建站主机快速创建免费网站?
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
BootStrap整体框架之基础布局组件
新三国志曹操传主线渭水交兵攻略
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
Laravel如何实现数据库事务?(DB Facade示例)
如何解决hover在ie6中的兼容性问题
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何快速搭建高效香港服务器网站?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
利用python获取某年中每个月的第一天和最后一天
Java解压缩zip - 解压缩多个文件或文件夹实例
如何快速搭建高效WAP手机网站吸引移动用户?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
如何破解联通资金短缺导致的基站建设难题?
网页设计与网站制作内容,怎样注册网站?
Python面向对象测试方法_mock解析【教程】
Laravel如何实现事件和监听器?(Event & Listener实战)
Swift中循环语句中的转移语句 break 和 continue
详解Android图表 MPAndroidChart折线图
iOS发送验证码倒计时应用
香港服务器网站卡顿?如何解决网络延迟与负载问题?
如何做网站制作流程,*游戏网站怎么搭建?
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
Laravel如何处理表单验证?(Requests代码示例)

