博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring4 版 eventbus 事件通信 事件驱动 介绍
阅读量:6214 次
发布时间:2019-06-21

本文共 1152 字,大约阅读时间需要 3 分钟。

hot3.png

开始使用

1. 事件发送器

@Autowired    ApplicationEventPublisher eventPublisher;

2. 发送事件

//订单准备工作完成 , 使订单生效    eventPublisher.publishEvent(new OrderEffectEvent(order.getId()));

例子 OrderEffectEvent类的定义(其实就是一个普通的java bean)

public final class OrderEffectEvent implements IOrderEvent {   @Getter   private final String orderId;   public OrderEffectEvent(String orderId) {       this.orderId = orderId;   }}

3 在需要处理的地方接收发送的事件,使用@EventListener 注解

/**    * 使订单生效    *    * @param event 订单生效事件    * @return    */   @EventListener   public void handlerEffectOrder(OrderEffectEvent event) {            // do some thing   }

@EventListener 还支持事件过滤,例如 下面这个例子只想接收到 订单业务类型为 MONTHLY 的事件

注意 condition 内容为sqEl 表达式 需要返回类型为 boolean

/**    * 订单未支付,取消业务状态    *    * @param event 订单事件    */   @EventListener(condition = "T(com.xxx.Order.BizType).MONTHLY eq #event.orderType")   public void handlerEvent(OrderPayExpireEvent event) {   }

注意 泛型也是支持的

/**    *    * @param event 新增事件    */   @EventListener   public void handlerEvent(ICreateEvent event) {             // switch (event)      // if(event instanceof OrderCreateEvent )   }

4 扩展阅读

转载于:https://my.oschina.net/longyuan/blog/646627

你可能感兴趣的文章
磁盘超过2T无法用fdisk分区的问题
查看>>
我的友情链接
查看>>
MySQL三大范式
查看>>
nginx在reload时候报错invalid PID number
查看>>
asp 源码建站
查看>>
linux 安装redis
查看>>
关于json.dumps中的参数,例如ensure_ascii
查看>>
SSM框架——实现分页和搜索分页
查看>>
[Yii Framework] spl_autoload_register 导致加载顺序冲突
查看>>
OSX BASH 漏洞修复指南
查看>>
golang -- channel使用
查看>>
从输入 URL 到页面加载完的过程中都发生了什么事情 —— 网络优化篇
查看>>
ntpdate 的问题
查看>>
Linux基础软件包编译安装
查看>>
限定某个目录禁止解析(apache)
查看>>
java 面向对象
查看>>
Spring Task使用笔记
查看>>
linux资料整理之进程管理
查看>>
Jenkins实践--Jenkins搭建和使用
查看>>
我的友情链接
查看>>