Google Guava EventBus使用 Guava是Google开源的一个Java基础类库,它在Google内部被广泛使用。Guava提供了很多功能模块比如:集合、并发库、缓存等,EventBus是其中的一个module,本篇主要讲一下EventBus的使用。 简单介绍 EventBus:核心类,代表了一个事件总线。Publish事件也由它发起。 AsyncEventBus:异步事件总线,在分发...
创建EventBus 对象。通常全局或模块内通过单例模式只用一个 EventBus 对象 创建消息类 创建监听者类 注册监听者类。如果有多个 EventBus 对象,监听者类注册在哪个 EventBus 对象下,消息就需要发布到对应的 EventBus 中 发布消息 EventBusDemo.java packagecn.jkingtools.demo.guava.eventbus; importcom.google.comm...
-- https://mvnrepository.com/artifact/com.google.guava/guava --><dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>19.0</version></dependency> 2. 示例代码: 2.1 注册中心代码 EventBusCenter.java package com.lance.google.event.bus;importcom.google.common.event...
2. public void shouldReceiveEvent() throws 3. 4. // given 5. new EventBus("test"); 6. new 7. 8. eventBus.register(listener); 9. 10. // when 11. new OurTestEvent(200)); 12. 13. // then 14. 200); 15. } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14....
一、写在前面的话,guava的坐标为: version=21.0 groupId=com.google.guava artifactId=guava 整体交互过程见下: guava EventBus.png UML.png 二、登录日志示例实现 这里以登录为示例,讲述异步记录登录日志的事件驱动。 1、定义事件分发器接口 /** * 事件分发器的接口 ...
EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。 观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送、短信、通知卖家、买家等等;审批系统中,审批单的流程流转会通知发起审批用户、审批的领导等等。
1.代码可读性很差,项目中使用的时候,从post的地方,查询handle使用,都是使用ide的搜索服务,问题很难定位,不如普通的接口调用方便查询; 2.由于EventBus是将消息队列放入到内存中的,listener消费这个消息队列,故系统重启之后,保存或者堆积在队列中的消息丢失。 3.google的guava的个版本之间的兼容性也是一个问题,有时候...
在Google Guava 10版本引入了EventBus, 它主要用来简化我们处理生产/消费者编程模型. 基本用法 使用Guava之后, 如果要订阅消息, 就不用再继承指定的接口, 只需要在指定的方法上加上@Subscribe注解即可: public class EventListener { public int lastMessage = 0; ...
EventBus是一个事件总线,它简化了应用程序组件之间的通信。通过使用EventBus,我们可以将事件发布到总线,然后由感兴趣的事件监听器(即观察者)接收并处理这些事件。 下面我们将通过一个简单的Java代码示例来展示如何使用Google Guava的EventBus实现观察者模式。
EventBus是Google.Guava提供的消息发布-订阅类库,它实现了观察者设计模式,消息通知负责人通过EventBus去注册/注销观察者,最后由消息通知负责人给观察者发布消息。 首先使用 maven 依赖: 代码语言:javascript 复制 <!--https://mvnrepository.com/artifact/com.google.guava/guava--><dependency><groupId>com.google....