Google EventBus

组成部分

  1. 事件(什么类型的事件);
  2. 事件监听器,即事件处理程序(响应);

  3. 注册事件监听器(register);

  4. 触发事件(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);

问题

  1. 什么时候注册事件监听器?
    在事件监听器创建完之后自动注册,使用注解 @PostConstruct
  2. 程序怎么知道那个事件监听器来响应?
    根据事件对象类型(可以是String等系统类型,也可以是自定义类)

参考:
spring+guava事件异步分发处理
Guava EventBus Spring

google guava事件总线用法相关推荐

  1. Google guava 事件总线 EventBus 进程内消息队列

    Google guava 事件总线 EventBus 创建事件总线流程 码代码 引入依赖 一个简单的事件处理 监听者 创建事件生产者总线.注册事件监听者.发送事件 运行结果 扩展 多个事件监听者加De ...

  2. Google Guava Retry 优雅的重试方案

    Google Guava Retry 优雅的重试方案 前言 使用场景 什么场景不适合重试 了解幂等性 一.Guava Retry是什么? 与Spring retry比较 二.使用步骤 1.引入库 2. ...

  3. Google Guava的EventBus(事件总线)基本使用

            EventBus是Google.Guava提供的消息发布-订阅组件,采用的是观察者模式(生产/消费者编程模型), 实现了多组件之间通信的解耦合,事件产生方和事件消费方实现解耦分离,提升 ...

  4. [Google Guava] 11-事件总线

    原文链接 译文连接 译者:沈义扬 传统上,Java的进程内事件分发都是通过发布者和订阅者之间的显式注册实现的.设计EventBus就是为了取代这种显示注册方式,使组件间有了更好的解耦.EventBus ...

  5. Google Guava EventBus用于事件编程

    在任何软件应用程序中都是如此,有些对象需要共享信息才能完成工作. 在Java应用程序中,实现信息共享的一种方法是拥有事件侦听器,其唯一目的是在发生所需事件时采取某些措施. 在大多数情况下,此过程有效, ...

  6. Google Guava EventBus和Java 7 WatchService用于事件编程

    这篇文章将介绍如何使用Guava EventBus将更改发布到Java 7 WatchService检测到的目录或子目录中. Guava EventBus是向应用程序添加发布/订阅通信的好方法. Ja ...

  7. 【编程实践】Google Guava 极简教程

    前言 Guava 工程包含了若干被 Google 的 Java 项目广泛依赖 的核心库,我们希望通过此文档为 Guava 中最流行和最强大的功能,提供更具可读性和解释性的说明. 适用人群 本教程是基础 ...

  8. google guava 入门教程

    Guava(瓜娃)学习笔记 (代码下载地址) Guava工程包含了若干被google的java项目广泛依赖的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 ...

  9. Google Guava官方教程

    原文链接 译文链接 译者: 沈义扬,罗立树,何一昕,*武祖 * 校对:方腾飞 引言 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] . ...

最新文章

  1. 语音信号的短时语音能量
  2. malloc分配内存的原理?
  3. 【个人阅读】软件工程M1/M2阶段总结
  4. hive或mysql报错Too many connections
  5. spring 通过id 查询数据_Spring 数据初始 H2 后进行数据查询提示 Schema not found 错误...
  6. Setforegroundwindow 将窗口置最前
  7. github 视觉测量_计算机视觉资源推荐:多人实时关键点(脸、手、足)检测库...
  8. MongoDB游标操作(4)
  9. 怎样通过互联网ssh访问家里电脑
  10. Windows 7无线路由器解决
  11. Mysql字符集转换原理剖析及乱码原因
  12. Activity-GalleryView
  13. 【钛坦白】清华大学李建:深度学习在时空大数据分析中的应用(转载)
  14. 深入PCI与PCIe之一:硬件篇
  15. HTTP知识点总结 - 转载
  16. SQL Server配置管理器没有任何项目
  17. 学计算机专业1050显卡够不够,gtx1050显卡性能怎么样
  18. 计算总成绩和平均成绩
  19. Activity详情——Android8.0中Activity的启动流程
  20. 实验室计算机主机应关闭显示器一般不用关,实验室的计算机主机应关闭,显示器一般不用关闭...

热门文章

  1. 1. 爬下12306--从0到1
  2. 淘宝电影联合华谊的数据报告,还有哪些重要信息?
  3. window7无法使用vlc客户端_解决libVLC无法响应鼠标消息
  4. 【Grasshopper基础2】Grasshopper电池的输入和输出不是那么详的解/进一步了解Params
  5. 在线教育平台系统后台功能开发
  6. 阿里云IoT工业互联网应用开发平台上线 一站式构建工业互联网应用
  7. 简述局域网交换机与集线器的区别?
  8. 英语口语练习的有效方法
  9. 坚持不下去怎么办?这些好用的懒人听书APP,专治没有毅力的你
  10. Linux VPU驱动