【Spring】实现自定义事件的发布与处理

说说Spring事件发布机制 在最近分析和写的SpringBoot源码分析([面试官:你说说Springboot的启动过程吧(5万字分析启动过程)](https://blog.youkuaiyun.com/fhf2424045058/article/details/127654668))中,给自己留了几个扩展内容,其中一个是Spring的事件机制,在分析源码的过程中,也是大量使用了事件机制,在我分析的这篇博客中,有不少地方都运用了事件发布机制,所以本文的目的是从SpringBoot中学习到事件的发布流程,并自己写一个事件发布用于以后得业务。 阅读详情

先自定义一个事件:

public class NotifyEvent extends ApplicationEvent {
    private String email;
    private String content;
    public NotifyEvent(Object source) {
        super(source);
    }
    public NotifyEvent(Object source, String email, String content) {
        super(source);
        this.email = email;
        this.content = content;
    }
    // 省略getter/setter方法
}

注册一个事件监听器:

@Component
public class NotifyListener implements ApplicationListener<NotifyEvent> {

    @Override
    public void onApplicationEvent(NotifyEvent event) {
        System.out.println("邮件地址:" + event.getEmail());
        System.out.println("邮件内容:" + event.getContent());
    }
}

发布事件:

@RunWith(SpringRunner.class)
@SpringBootTest
public class ListenerTest {
    @Autowired
    private WebApplicationContext webApplicationContext;

    @Test
    public void testListener() {
        NotifyEvent event = new NotifyEvent("object", "abc@qq.com", "This is the content");
        webApplicationContext.publishEvent(event);
    }
}
【SpringBoot3】Spring Boot Event 自定义事件的发布与监听 Spring Boot自定义事件是Spring框架中事件处理机制的一种扩展,它允许开发者在Spring Boot应用程序中定义、发布和监听自己的事件。这些事件可以用于在应用程序的不同组件之间进行通信,实现解耦和异步处理。通过自定义事件,开发者可以更加灵活地处理业务逻辑,提高系统的可扩展性和可维护性。 阅读详情

相关推荐

基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计与实现(附源码、仿真与计算书)

本文详细介绍了基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计方案。该设计利用STM32的高分辨率定时器(HRTIM)实现精确PWM控制,支持Buck、Boost和Buck-Boost三种工作模式自动切换,具备双向能量流动能力。通过PSIM仿真和Mathcad计算书进行参数优化,实测效率达95.8%,适用于新能源系统和电池管理等场景。

www00的博客 525

Spring 学习之扩展点总结之自定义事件(三)

在 Spring学习之扩展点总结(二)介绍了 InitializingBean 和 BeanPostProcessor 的异同点和FactoryBean 和 BeanFactory 的区别。Spring 除了这些扩展点还提供了 Event 事件操作,本文主要介绍这些事件的操作。Spring 的事件就类似于一个活动,比如我们平时举办一个活动或者是某个音乐会,有主持人,指挥员,各种乐器手组成,音乐会开始,指挥员挥舞着手中的指挥棒,下面的各个乐器手就会弹奏不同的音律,这样配合之下,美妙的音乐就产生了。

qq_19283249的博客 938

从模态到颤振:深入解读Nastran的V-g/V-f图,判断你的机翼设计是否安全

本文深入解析Nastran中的V-g/V-f图在机翼颤振分析中的应用,帮助工程师准确判断设计安全性。通过模态分析到颤振边界的完整判读逻辑,结合气动弹性特性,指导优化机翼结构设计,确保飞行安全。

weixin_28732953的博客 470

(五)springboot实战——springboot自定义事件的发布和订阅

本节内容我们主要介绍一下springboot自定义事件的发布与订阅功能,一些特定应用场景下使用自定义事件发布功能,能大大降低我们代码的耦合性,使得我们应用程序的扩展更加方便。就本身而言,springboot的事件机制是通过观察者设计模式实现。通过ApplicationListener事件监听器实现事件的发布与订阅。我们以登录场景为例,假如用户登录之后,需要发送登录通知、发送邮件通知、发送签到通知,如果按照常规做法,我们可以顺序执行以上操作,但是使用springboot的事件机制,我们可以发布一个登录的事件消

厉害哥哥的博客 2381

DDR核心机制解析:从Burst到Prefetch的性能跃迁

本文深入解析了DDR内存性能跃迁的核心机制,重点阐述了Burst(突发传输)与Prefetch(预取)技术的协同工作原理。Burst机制通过连续传输数据减少访问延迟,而Prefetch则通过内部预取数据提升吞吐量,两者结合完美匹配现代CPU缓存行需求,是DDR3等内存实现高效带宽的关键。

weixin_29232121的博客 135

python实现马丁策略(股市) (附完整源码)

python实现马丁策略(股市) (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 603

在Spring中自定义事件及发布与监听

在Spring框架中,自定义事件及其发布与监听是一个涉及Spring事件机制的过程。Spring提供了一个基于观察者模式的事件发布和监听机制,允许在Spring容器中的组件之间进行松耦合的通信。通过上述步骤,可以在Spring应用程序中自定义事件、发布事件以及监听事件。这种机制有助于实现组件之间的解耦,增强应用程序的模块化和可维护性。这个注解可以添加到方法上,指定当特定事件发生时应该调用的方法。Spring支持异步事件监听,允许事件监听方法异步执行。这可以通过自动装配到需要发布事件的组件中来实现。

编程小弟的博客 809

基于计算机视觉的无人便利店技术:从算法到部署的系统化实战指南

摘要:本文系统介绍了基于计算机视觉的无人便利店技术方案,提出"商品检测-跟踪-动作识别-防损-结算"五段式流水线架构。详细阐述了YOLOv8-Seg商品检测、OC-Sort多目标跟踪、3D-CNN+ST-GCN动作识别等核心算法实现,并完成NVIDIA Jetson Xavier NX边缘端的优化部署。通过TensorRT量化、DeepStream加速等技术手段,系统在保持94.7%动作识别准确率的同时,将漏单率降至0.8%,单店云端算力成本较行业平均降低84%。所有代码已开源,可直接应

博客 624

ApplicationContext发布事件和处理事件

ApplicationContext中的事件处理是通过ApplicationEvent类和ApplicationListener接口来提供的,通过ApplicationContext的publishEvent()方法发布到ApplicationListener; 在这里包含三个角色:被发布的事件,事件发布者,事件的监听者。 事件发布者在发布事件的时候->通知事件的监听者。 1.要发布...

舞动de人生 1万+

Cyclone DDS背景技术

DDSI标准与DDS 1.2和1.4标准密切相关,DDSI中的实体与DCPS中的实体之间有明确的对应关系。但是,这种对应关系不是一一对应的。 此处,仅仅对DDSI规范的概念进行描述,暂不涉及Eclipse Cyclone DDS实现的细节。DDSI规范的概念将帮助对互操作性interoperability感兴趣的技术人员了解规范的外延边界和Eclipse Cyclone DDS实现的开始。

pony12的专栏 948

解读 2025《高质量数据集 质量评测规范》

《高质量数据集质量评测规范》为2025年数据质量评估提供标准化框架,适用于政府部门、AI企业、数据服务商等行业主体。规范以"说明文档-数据质量-模型应用"三维体系为核心:明确定义高质量数据集分类,细化各项指标要求(包括文档完整性、数据规范性、应用多样性等),并提供具体评分细则(百分制,90分达标)和计算方法。附录补充多模态数据处理细则,旨在建立可操作的质量评估标准,保障优质数据供给流通。

cdfunlove的博客 1881

Spring事件发布与监听机制

我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复【资料】,即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板。 文章目录前言ApplicationContext 事件机制ApplicationListener 监听器ApplicationEvent 事件自定义事件和监听器注解式监听器 前言 Spring 提供了 ApplicationContext 事件机制,可以发布和监听事件,这个特性非常有用。 Spring 内置了一.

陈皮的JavaLib 1731

Windows原生环境配置Tensorflow使用GPU

本文讲解如何在Windows原生环境搭建可调用GPU设备进行计算的Tensorflow2.x环境。 区别于WSL,使用Windows原始环境作为开发环境。

天然玩家的博客 1498

spring事件发布机制

关于Java的事件监听机制 Spring事件机制是观察者模式的一种实现,但是除了发布者和监听者者两个角色之外,还有一个EventMultiCaster的角色负责把事件转发给监听者。 观察者模式 Spring的事件监听(也称事件驱动)是观察者模式的一种实现,比较常见的有发布-订阅模型。通常我们利用消息队列来实现不同系统之间的解耦,如用户注册完成后,可以向消息队列发布一条消息,然后订阅了此topic的...

业精于勤荒于嬉 行成于思毁于随 1438

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

事件的力量:探索Spring框架中的事件处理机制

了解如何使用Spring的事件处理机制来实现异步通信、解耦组件,以及提高应用程序的可扩展性。本文将带你深入事件的世界。

todoitbo的博客 5367

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

spring发布事件的3种方式

通过Spring自身的事件机制来发布事件。包括同步方式,同步注解方式,异步注解方式:1)同步方式。首先定义事件类:通过继承ApplicationEvent来将普通对象设置成Spring事件package com.wxq.ssm.common.event; import org.springframework.context.ApplicationEvent; /** * @author xu...

Seeker-Wu的专栏 3307

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

spring事件监听与发布

在使用 Spring构建的应用程序中,适当使用事件发布与监听的机制可以使我们的代码灵活度更高,降低耦合度。Spring提供了完整的事件发布与监听模型,在该模型中,事件发布方只需将事件发布出去,无需关心有多少个对应的事件监听器;监听器无需关心是谁发布了事件,并且可以同时监听来自多个事件发布方发布的事件,通过这种机制,事件发布与监听是解耦的。创建/监听事件应该以下准则事件类应该继承事件的发布者应该注入事件监听者应该实现创建事件类 继承} }创建事件的发布者 注入。

RT_0114的博客 1005

Spring系列17:Spring事件发布详解

本文内容 实现原理和标准事件 编程式实现自定义事件 基于注解的自定义事件 通用事件 实现原理和标准事件 Spring中的事件发布本质上是标准的观察者设计模式。ApplicationContext 中的事件处理是通过 ApplicationEvent 类和 ApplicationListener 接口提供的。如果将实现 ApplicationListener 接口的bean部署到上下文中,则每次将 ApplicationEvent 发布到 ApplicationContext 时,该bean都会得到通知。

qq_21579619的博客 2611

Spring事件发布与监听

Spring的事件机制基于发布-订阅模式,可以有效地解耦系统中各个组件之间的交互。事件发布和监听分离,使得系统的组件更加独立。通过自定义事件类、事件发布者和事件监听器,你可以非常方便地实现Spring应用中的事件驱动逻辑。事件发布:通过ApplicationContext.publishEvent()发布事件。事件监听:通过实现ApplicationListener接口或使用@EventListener注解监听事件。

2301_80295548的博客 1002

SpringBoot自定义事件发布

1、自定义事件 Spring中自定义事件需要继承ApplicationEvent /** * 自定义事件,继承ApplicationEvent */ @Data public class MailSendEvent extends ApplicationEvent { private String to; private String message; public MailSendEvent(Object source, String to, String message)

hxt的博客 1178

Spring事件机制实现异步的方法

这篇文章主要介绍了使用Spring事件机制实现异步的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 当把一个事件发布到Spring提供的ApplicationContext中,被监听器侦测到,就会执行对应的处理方法。 事件本身 事件是一个自定义的类,需要继承Spring提供的ApplicationEvent。 ? 1 2 3 ...

majunzhu的博客 887

Spring事件机制

自定义一个事件类,继承ApplicationEvent。该事件可以被ApplicationContext通过publishEvent方法进行发送return msg;@Subscribe@Override/*** 注解@AllowConcurrentEvents是用来标识当前订阅者是线程安全的。

weixin_45102820的博客 2539

掌握 Spring 之事件处理

1 前言 本次我们来学习 Spring 的事件处理,源于实际工作中遇到的项目需求:在一个支付的下单场景中,当用户真正支付成功,服务器收到回调后就需要及时更新订单数据状态来保证数据一致。通常做法就是在回调方法里直接使用订单服务更新数据, 然而这样实现上两个模块出现了紧密耦合,如果订单更新的操作需要进行调整,那么在支付回调的代码块中也需要被修改。 为了避免这样情况发生,我采用了 Spring 事件发...

weixin_34324081的博客 187

0.8、Spring 源码学习——Spring中的事件发布和处理

文章目录前言Spring 中的 观察者模式Spring 事件相关的类/接口介绍多事件处理器Spring 中关键的几个重要事件类事件监听器类自定义事件发布与监听自定义监听器自定义事件自定义事件的发布——即效果查看延伸——ApplicationListener 和 ServletContextListener参考链接 前言 在 Spring applicationContext refresh() ...

༺ bestcxx的专栏 ༻ 562

Spring事件监听实现

1、代码结构 2、pom文件引入必要jar包 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.3.RELEASE</ver...

zh991993144的博客 414

Spring 中的事件监听机制

ApplicationContext 中的事件处理是通过ApplicationEvent 类和ApplicationListener 接口实现的。如果一个 Bean(监听器实例)实现了ApplicationListener 接口,并被部署到 Spring 容器中,那么每次在容器中发布一个ApplicationEvent 事件,该 Bean (监听器实例)都会被通知到。本质上,这种机制就是一个观察者的设计模式。

swadian2008的博客 5762
上一篇: OptionalBean
章 鱼
博客等级 码龄10年 203粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值