spring事件发布

2023-11-06

最近一个需求,接口监控异常,需要进行一连串逻辑处理,又新加需要给运维人员发短信,异步处理,不能影响源代码逻辑,因此用到事件发布器
在事件驱动中有三个比较重要的组件:
Event 发布的事件对象
EventPublisher:事件发布对象
EventListener:事件监听对象
1.定义一个事件发布类型,


/**
 * 自定义一个事件对象,继承ApplicationEvent
 *
 * */
public class TestEvent extends ApplicationEvent {
    //
    public TestEvent(Object source) {
        super(source);
    }
}

2.定义事件发送器

/**
 * 自定义事件发布者
 */

@Component
public class TestEventPublisher implements ApplicationEventPublisherAware {
    private ApplicationEventPublisher publisher;

    @Override
    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
        this.publisher = applicationEventPublisher;
    }

    // 发布的事件内容 Object 可以是任意对象
    // 业务直接调查此方法就可以发送事件,然后在监听器就可以获取
    // 发布的事件obj对象,进行后续业务处理
    public void sendEvent(Object obj) {
        // 发布事件
        publisher.publishEvent(new TestEvent(obj));
    }
}

3.事件监听器

/**
 * 自定义监听事件,监听的时间就是发布的事件
 * */
@Component
public class TestLister implements ApplicationListener<TestEvent> {
    @Override
    public void onApplicationEvent(TestEvent event) {
        // 获取事件的内容
        Object source = event.getSource();

    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring事件发布 的相关文章

随机推荐

  • 献给童鞋们python教程:Collections模块的Counter容器类使用

    本文来源于公众号 csdn2299 喜欢可以关注公众号 程序员学府 文章目录 1 collections模块 2 Counter类 2 1 创建 2 2 计数值的访问与缺失的键 2 3 计数器的更新 update和subtract 2 4
  • 爬取植物数据库:使用 Python 获取植物信息

    在这篇博客中 我们将学习如何使用 Python 编写一个网络爬虫 从植物数据库网站中获取植物信息 我们将使用 requests BeautifulSoup 和 pandas 库来实现这个功能 文章将包括以下内容 目录 1 爬虫的基本概念 2
  • elasticsearch基本查询(此处为2.x版本)

    public class JavaESQuery private TransportClient client Before public void testBefore Settings settings Settings setting
  • Canal解决Mysql和Redis数据同步问题

    目录 前言 一 Mysql主从工作原理 主从复制步骤 二 使用方法 1 软件下载 软件需求 所有安装包 我的资源都有 2 修改配置 1 数据库配置修改 2 canal配置修改 3 RocketMQ配置 4 RocketMQ可视化工具配置 3
  • iPad越狱是什么?iPad越狱有什么好处和坏处

    1 iPad越狱是什么 iPad越狱有什么好处和坏处 不越狱又有啥缺点 越狱就是解除一些原版固件的限制 最大的好处是可以安装破解的软件和游戏 这些软件和游戏本来都是收费的 而且 有些功能很强大的软件 并不是花钱能在官方的App Store里
  • docker方式部署的mysql 8.0远程连接1045问题解决

    项目场景 docker方式部署 mysql8 0 远程连接 报 1045 问题描述 原因分析 在docker 部署创建mysql容器的时候 配置用户权限 mysql user表中host未配置权限 解决方案 1 找到mysql容器 dock
  • MATLAB中自带的核密度估计函数

    我们在统计数据处理时 经常计算一个样本的概率密度估计 也就是说给出一组统计数据 要求你绘制出它的概率分布曲线 matlab的统计工具箱中有直接的函数 就是 Ksdensity 核心平滑密度估计 f xi ksdensity x 计算样本向量
  • MySQL JDBC驱动版本与MySQL数据库版本对应关系

    前言 前段时间发现在家使用和公司一样的mysql jdbc驱动版本发生了异常 原因 家里mysql数据库版本与公司不一致导致 查询了相关资料 发现mysql jdbc驱动版本与mysql数据库版本有一定的对应关系 用错了版本就会出现连接不上
  • Python3.7.5一键安装脚本

    python3 7 5一键安装脚本install python3 7 5 sh 适用于linuix环境 内容如下 which python3 7 if 0 then echo python3 7 exists return 0 fi f P
  • 学习笔记☞ MySQL(二)

    1 字符类型的宽度和数值类型的宽度区别 1 数值类型的宽的仅仅为显示宽度 只用于select查询显示 和占用的存储空间大小无关 可用zerofill查看效果 2 字符类型的宽度超过则无法存储 2 where 条件子句 配合查询 修改 删除操
  • ECDH secp256k1 集成

    在Android 原生api是不支持secp256k1算法的 所以要先集成以下库 implementation com madgag spongycastle core 1 58 0 0 compile com madgag spongyc
  • JavaScript学习总结【12】、JS AJAX应用

    1 AJAX 简介 AJAX 音译为 阿贾克斯 Asynchronous JavaScript and XML 异步的 JavaScript 和 XML 是指一种创建交互式网页应用的网页开发技术 也就是在无需重新加载整个网页的情况下 能够更
  • 一文带你了解 MQTT 协议(连接 ONE-NET平台)

    MQTT 协议连接 ONE NET 详解 写在前面 本文采用 网络调试助手 发送MQTT协议报文 16进制 连接 ONE NET 平台 采用的 为 MQTT v3 1 1 标准协议 带你直接 学会 MQTT 协议 一 ONE NET 端创建
  • Ubuntu20.04安装vscode打开出现花屏

    目录 前言 出现原因 解决方法 探索 最终方案 前言 最近在Ubuntu20 04安装vscode打开后出现了花屏的情况 在网上查找各种方法后终于解决 在这里记录一下 希望对大家有所帮助 出现原因 出现这样的问题是因为vscode开了GPU
  • idea中创建git分支

    1 使用idea打开项目 点击项目右下方的分支按钮 2 选择New Branch 3 输入分支名称后 create即可 4 提交和推送 注意 如果没有修改代码 就不需要提交 只需推送即可创建分支
  • 数据结构--双链表的c/c++实现(超详细注释/实验报告)

    数据结构 双链表的c c 实现 超详细注释 实验报告 知识小回顾 如果希望从表中快速确定某一个结点的前去 其中一个解决方法就是在单链表的每个结点再增加一个指向其前去的指针域prior 这样形成的链表中就有两条方向不同的链 称之为双向链表 D
  • 100天精通Python(数据分析篇)——第57天:Pandas读写Excel(read_excel、to_excel参数说明+代码实战)

    文章目录 1 read excel 读取Excel文件 io sheet name header names index col usecols squeeze skiprows 2 to excel 写入Excel文件 excel wri
  • Unity Android 真机调试 + 夜神模拟器调试 + ADB Logcat

    备注 调试前需要先检测java和SDK的环境变量是否OK 在CMD中输入java和adb检测 官方文档 https docs unity3d com Manual AttachingMonoDevelopDebuggerToAnAndroi
  • Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建过程实战

    目录 前言 第一讲 框架结构简解 第二讲 测试接口服务 第三讲 配置文件读取 第四讲 读取Excel中的case 第五讲 发送requests请求 第六讲 参数动态化 第七讲 使用unittest断言 第八讲 HTMLTestRunner源
  • spring事件发布

    最近一个需求 接口监控异常 需要进行一连串逻辑处理 又新加需要给运维人员发短信 异步处理 不能影响源代码逻辑 因此用到事件发布器 在事件驱动中有三个比较重要的组件 Event 发布的事件对象 EventPublisher 事件发布对象 Ev