了解Guava的EventBus是从Shiro的EventBus开始, 只是想两者有什么不同, 为什么Shiro要重新实现自己的一套EventBus。 带着这样的问题就先看了一下Guava的EventBus. 总体来讲实现容易, 重要的还是思想。它由EventBus, Subscriber, SubscriberRegistry, Dispatcher, 这几个大的Object来处理完成。
EventBus: 事件的总线。
Subscriber: 通过反射查找在方法上标识有@Subscribe的方法构成一个Subscriber (Subscriber.create(bus, listener, method)).
SubscriberRegistry: 处理Subscriber. 如:void register(Object listener), void unregister(Object listener)
Dispatcher: 实现不同的Dispatch策略模式。 如: LegacyAsyncDispatcher,ImmediateDispatcher,PerThreadQueuedDispatcher, 最后调用Subscriber.java 的dispatchEvent(Object event)方法, 即反射method.invoke(target, checkNotNull(event));
活动流程图如下:
相关推荐
jar包,亲测可用
Guava的EventBus源码学习,基于Guava的18.0版本 分析者: ###1. 背景简介 EventBus是google的一个Java工具包其中的一个工具类,类似的有多个版本其中包括移植到Android端的 和改良的,功能基本都是一样的。此处主要...
eventBus android 跨页面异步传输数据 可用于异步网络请求和 异步跨页面传数据
Guava EventBus 是一个轻量级的事件总线库,它允许在应用程序的不同组件之间传递消息,促进了松耦合的编程模型。在 Guava EventBus 的使用中,`@Subscribe` 注解是核心概念,它标记了那些监听并处理事件的方法。然而...
├─Google Guava 第19讲-Guava之EventBus和NIO2.0 WatchService综合实战.wmv ├─Google Guava 第20讲-实战:手动实现一个EventBus-01快速搭建程序结构.wmv ├─Google Guava 第21讲-实战:手动实现一个EventBus-...
EventBus是Google Guava项目的一部分,提供了一个轻量级的事件机制实现。它基于观察者模式(或发布订阅模式),主要分为三部分:发布者、监听者、事件。EventBus的使用非常简单,只需要定义事件对象、事件监听器和...
《深入理解Google Guava:函数式接口与EventBus解析》 Google Guava是Google推出的一个开源库,它为Java开发人员提供了一套丰富的工具类和集合框架,极大地提高了开发效率和代码质量。本资料主要围绕Guava中的两个...
SNAPSHOTMaven依赖<dependency><groupId>com.woter.fact</groupId><artifactId>fact-bus</artifactId><version>1.0.0-SNAPSHOT</version></dependency>功能描述fact-bus 是基于guava整合spring实现EventBus;...
jar包,亲测可用
####Simple application with Spring boot 使用可配置的嵌入式/外部 DB 数据源和 RESTful 调用,演示如何使用 Guava Eventbus 拦截调用。 这里 对 localhost:8080/customer/ 的 POST 调用 使用 json 数据,如 {"id...
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
jar包,亲测可用
它比 Google Guava的EventBus更快、更强大 {citation needed}。 什么是 ASM ASM是一个java库,提供实时的字节码修改和生成。 它的名字被称为内联汇编器, 虽然我认为是沙明丸绫的迷你裙…… AsmEventBus由ASM供电...
- Guava EventBus 是一种发布/订阅事件总线,允许不同组件之间松耦合地通信。 - Guava 还包含其他组件,如多线程工具、集合增强、字符串处理等。 Spring Framework 是一个全面的企业级应用开发框架,它包含多个模块...