当前位置: 首页 > news >正文

ApplicationEventPublisher的使用、Spring事件发布

spring事件的订阅发布,适用业务解耦合

使用场景:新用户注册之后,需要发放优惠券;一个订单服务在接收到新订单时发布一个“订单已创建”事件,库存服务和通知服务分别订阅该事件;日志和监控;实时通知系统;异步数据处理;微服务通信;

创建事件:根据具体业务创建需要的实体

/*** 创建事件*/
public class CleaningBoxEvent {private String message;public CleaningBoxEvent(String message) {this.message = message;}public String getMessage() {return message;}
}
创建观察者 :执行具体业务的业务逻辑
@Component
public class CleaningBoxEventListener {@EventListenerpublic void handleCustomEvent(CleaningBoxEvent event) {System.out.println("Received custom event: " + event.getMessage());// 在这里执行观察者的业务逻辑}
}

发布事件 :注入bean

/*** 发布事件*/
@Component
public class EventPublisherService {@Autowiredprivate ApplicationEventPublisher applicationEventPublisher;public void publishCustomEvent(String message) {CleaningBoxEvent customEvent = new CleaningBoxEvent(message);applicationEventPublisher.publishEvent(customEvent);}
}

执行订阅发布:引用事件的方法

 /***执行订阅发布*/public void doSomethingAndPublishEvent() {// 发布事件   //returnByList.size()eventPublisherService.publishCustomEvent("自动清箱完成数量:");}
执行:doSomethingAndPublishEvent();
http://www.lryc.cn/news/378700.html

相关文章:

  • RFID优缺点和应用场景
  • 可信启动Trusted Board Boot
  • JVM的类加载机制
  • C++中的八大设计原则
  • 2024广东省职业技能大赛云计算赛项实战——Minio服务搭建
  • 【考研408计算机组成原理】数值表示和运算之快速数值转换
  • 理解 JTBD 框架和EJ 理念:深挖以用户为中心的设计
  • 数据提取与治理:企业实现数据驱动决策的必经之路
  • Avalonia:一个.NET跨平台UI框架
  • 海量数据处理——bitMap/BloomFilter、hash + 统计 + 堆/归并/快排
  • TrainingArguments、ModelArguments、DataArguments参数使用(@dataclass)
  • 基于jeecgboot-vue3的Flowable流程-自定义业务表单处理(一)支持同一个业务多个关联流程的选择支持
  • 解决数据丢失问题的MacOS 数据恢复方法
  • [ARM-2D 专题]3. ##运算符
  • 基于语音识别的智能电子病历(五)电子病历编辑器
  • 云计算技术高速发展,优势凸显
  • 文本三剑客其二
  • 【达梦数据库】typeorm+node.js+达梦数据库返回自增列值
  • 【ARMv8/ARMv9 硬件加速系列 2.1 -- ARM NEON 向量寄存器单个元素赋值】
  • GD32学习
  • LangChain:如何高效管理 LLM 聊天历史记录?
  • 【React】useState 更新延迟的原因是什么,怎么解决?
  • 非关系型数据库NoSQL数据层解决方案 之 redis springboot整合与读写操作 2024详解以及window版redis5.0.14下载百度网盘
  • jigdo无法下载的文件
  • C#面:C# 类的执行顺序?
  • 昇思25天学习打卡营第3天|数据集Dataset
  • SpringCloud 服务调用 spring-cloud-starter-openfeign
  • 基于Elementui组件,在vue中实现多种省市区前端静态JSON数据展示并支持与后端交互功能,提供后端名称label和id
  • 基于DPU的云原生裸金属网络解决方案
  • pip install镜像源(更新和换源)