EventBus 是 Guava 的事件处理机制,是观察者模式(生产/消费模型)的一种实现。 观察者模式在我们日常开发中使用非常广泛,例如在订单系统中,订单状态或者物流信息的变更会向用户发送APP推送、短信、通知卖家、买家等等;审批系统中,审批单的流程流转会通知发起审批用户、审批的领导等等。 Observer模式也是 JDK 中自带就支...
1packagepriv.jack.demo.listener;23importjava.util.Map;45importcom.google.common.collect.Maps;6importcom.google.common.eventbus.EventBus;89/**10* 事件总线工厂11* 将EventBus封装为单例模式使用12*@authorJack13*14*/15publicclassEventBusFactory {1617privatevolatilestaticEventBusFactory INSTANCE ;1819/*...
下面是使用 Guava Eventbus 的基本步骤: 1. 添加 Guava Eventbus 的依赖库: 在Gradle 项目的 build.gradle 文件中添加如下依赖: ``` dependencies { implementation 'com.google.guava:guava:30.1-jre' } ``` 2. 定义事件类: 事件类是一个普通的 Java 类,它封装了事件的相关信息。例如: ``` public ...
EventBus 是Google.Guava提供的消息发布-订阅类库,它实现了观察者设计模式,消息通知负责人通过EventBus去注册/注销观察者,最后由消息通知负责人给观察者发布消息。 实战编码 下面将以EventBus为例,AsyncEventBus使用方式与其一致的。 定义观察者 public class Observers { public static class TextObserver { @Subscribe ...
EventBus 是Guava的一个发布订阅的模型,先看一个简单的实现: 定义一个Event的消息传递对象 代码语言:javascript 复制 publicclassTestEvent1{privatefinal int message;/** * 构造方法 * @param message */publicTestEvent1(int message){this.message=message;// System.out.println("TestEvent1 事件message:"+...
3 Guava中Event---就是消息发送和接收者之间的一个信物喽Tips:如果不考虑扩展和代码复用,只需要Event.java即可 4 信物有了,使用信物的主角之一:发布消息的主题eventBus.post(new ObserverEvent(msg))使用了信物:ObserverEvent.java 5 使用信物的主角之一:接收消息的观察者,就是收消息(通知)的喽这个例子中...
意思是说AsyncEventBus就是EventBus,只不过AsyncEventBus使用你指定的线程池(不指定使用默认线程池)去分发事件(Event),并且是异步进行的。 **AsyncEventBus总结** - 1.异步执行,事件发送方异步发出事件,不会等待事件消费方是否收到,直接执行自己后面的代码。
packagecom.lance.google.event.bus;importcom.google.common.eventbus.Subscribe;/** * Created by zhangzh on 2017/1/10. */publicclassDataObserver2{/** * post() 不支持自动装箱功能,只能使用Integer,不能使用int,否则handlersByType的Class会是int而不是Intege ...
摘要EventBus是Guava的事件处理机制,是设计模式中的观察者模式(生产/消费者编程模型)的优雅实现。对于事件监听和发布订阅模式,EventBus是一个非常优雅和简单解决方案,我们不用创建复杂的类和接口层次结构。 Observer模式是比较常用的设计模式之一,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但...
如果需要分布式使用还是需要使用 MQ 二、EventBus 使用步骤 1. 引入库 Gradle compile group: 'com.google.guava', name: 'guava', version: '29.0-jre' Maven com.google.guava guava 29.0-jre 引入依赖后,这里我们主要使用 com.google.common.eventbus.EventBus 类进行操作,其提供了 register、unregister、post...