google guava事件总线用法
Google EventBus
组成部分
- 事件(什么类型的事件);
事件监听器,即事件处理程序(响应);
注册事件监听器(register);
- 触发事件(trigger/post);
实例
事件,可以是任何自定义对象
/*** Created by whuanghkl on 17/6/22.<br />* 自定义事件*/
public class AccessLoggerEvent {}
事件监听器
/*** Created by whuanghkl on 17/6/22.<br />* 事件监听器*/
@Component
public class AccessLoggerListener {@Resourceprivate EventBus eventBus;@PostConstructpublic void init() {eventBus.register(this);}@Subscribepublic void logEvent(AccessLoggerEvent event) {System.out.println("logEvent");}
}
事件监听器自己注册到eventBus
在控制器中触发事件
AccessLoggerEvent accessLoggerEvent = new AccessLoggerEvent();eventBus.post(accessLoggerEvent);
问题
- 什么时候注册事件监听器?
在事件监听器创建完之后自动注册,使用注解 @PostConstruct - 程序怎么知道那个事件监听器来响应?
根据事件对象类型(可以是String等系统类型,也可以是自定义类)
参考:
spring+guava事件异步分发处理
Guava EventBus Spring
google guava事件总线用法相关推荐
- Google guava 事件总线 EventBus 进程内消息队列
Google guava 事件总线 EventBus 创建事件总线流程 码代码 引入依赖 一个简单的事件处理 监听者 创建事件生产者总线.注册事件监听者.发送事件 运行结果 扩展 多个事件监听者加De ...
- Google Guava Retry 优雅的重试方案
Google Guava Retry 优雅的重试方案 前言 使用场景 什么场景不适合重试 了解幂等性 一.Guava Retry是什么? 与Spring retry比较 二.使用步骤 1.引入库 2. ...
- Google Guava的EventBus(事件总线)基本使用
EventBus是Google.Guava提供的消息发布-订阅组件,采用的是观察者模式(生产/消费者编程模型), 实现了多组件之间通信的解耦合,事件产生方和事件消费方实现解耦分离,提升 ...
- [Google Guava] 11-事件总线
原文链接 译文连接 译者:沈义扬 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的.设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦.EventBus ...
- Google Guava EventBus用于事件编程
在任何软件应用程序中都是如此,有些对象需要共享信息才能完成工作. 在Java应用程序中,实现信息共享的一种方法是拥有事件侦听器,其唯一目的是在发生所需事件时采取某些措施. 在大多数情况下,此过程有效, ...
- Google Guava EventBus和Java 7 WatchService用于事件编程
这篇文章将介绍如何使用Guava EventBus将更改发布到Java 7 WatchService检测到的目录或子目录中. Guava EventBus是向应用程序添加发布/订阅通信的好方法. Ja ...
- 【编程实践】Google Guava 极简教程
前言 Guava 工程包含了若干被 Google 的 Java 项目广泛依赖 的核心库,我们希望通过此文档为 Guava 中最流行和最强大的功能,提供更具可读性和解释性的说明. 适用人群 本教程是基础 ...
- google guava 入门教程
Guava(瓜娃)学习笔记 (代码下载地址) Guava工程包含了若干被google的java项目广泛依赖的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 ...
- Google Guava官方教程
原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] . ...
最新文章
- 语音信号的短时语音能量
- malloc分配内存的原理?
- 【个人阅读】软件工程M1/M2阶段总结
- hive或mysql报错Too many connections
- spring 通过id 查询数据_Spring 数据初始 H2 后进行数据查询提示 Schema not found 错误...
- Setforegroundwindow 将窗口置最前
- github 视觉测量_计算机视觉资源推荐:多人实时关键点(脸、手、足)检测库...
- MongoDB游标操作(4)
- 怎样通过互联网ssh访问家里电脑
- Windows 7无线路由器解决
- Mysql字符集转换原理剖析及乱码原因
- Activity-GalleryView
- 【钛坦白】清华大学李建:深度学习在时空大数据分析中的应用(转载)
- 深入PCI与PCIe之一:硬件篇
- HTTP知识点总结 - 转载
- SQL Server配置管理器没有任何项目
- 学计算机专业1050显卡够不够,gtx1050显卡性能怎么样
- 计算总成绩和平均成绩
- Activity详情——Android8.0中Activity的启动流程
- 实验室计算机主机应关闭显示器一般不用关,实验室的计算机主机应关闭,显示器一般不用关闭...