so subscribers should be reasonably quick. If an event may trigger an extended process (such as a database load), spawn a thread or queue it for later. (For a convenient way to do this, use an AsyncEventBus.)
EventBus的特点: 单个线程上发布的所有事件都按其发布的顺序被调度到所有订阅服务器; 发布者和多个订阅者使用同一个线程处理。可能会影响发布者的性能,且某个订阅者耗时,也会影响其他订阅者; EventBus特点的场景: publicstaticvoidtestPre1(){//单例获取到事件总线EventBus eventBus=EventBusCenter.getInstance();...
1. Guava EventBus的基本使用 下面是一个简单的例子,展示了如何使用Guava EventBus: packagecn.juwatech.eventbus;importcom.google.common.eventbus.EventBus;importcom.google.common.eventbus.Subscribe;classUserCreatedEvent{privatefinalStringusername;publicUserCreatedEvent(Stringusername){this.username=username;}p...
Guava 是一款由 Google 开发的 Java 库,它提供了许多实用的工具类,如事件总线(EventBus)。事件总线是一种设计模式,用于在程序中传播事件。这种模式可以帮助程序员在各个组件之间实现松耦合,提高代码的可维护性和可扩展性。 【2.Guava 事件总线的使用案例】 在实际项目中,Guava 事件总线可以应用在许多场景,下面我们...
EventBus 确保触发消息的对象和使用消息的对象解耦,在很多场景下都有作用,通常用在生产者触发消息的时候并不关心消费这个消息的对象是谁的时候最适合。 笔者最早使用 Java Swing 的时候就用到了很多 UI Event 和自定义 listener 和 event。现在 Spring boot 的很多项目下多个 service 之间,有的是强关联,直接在一个...
最后,通过EventBus实例,我们将事件发布出去,并通知所有订阅了这个事件的订阅者。 看,是不是很简单?但这只是冰山一角。Guava事件总线的真正力量在于它如何让复杂的事件处理变得简单而优雅。随着你开始在更大的应用程序中使用它,你会发现它是如何帮助你减轻管理事件监听器的负担,并提高代码的可维护性和可读性。
EventBus 和 AsyncEventBus 作用:消息总线,广播消息 构造函数: AsyncEventBus 继承 EventBus,两者的区别在于EventBus的Executor默认使用的是MoreExecutors.directExecutor(),阅读源码发现这个是直接运行并没有新建Executor EventBus(String identifier, Executor executor, Dispatcher dispatcher, SubscriberExceptionHandler except...
5.EventBus 6.RateLimiter 7.去掉字符串的空格和换行 回到顶部 1.CaseFormat CaseFormat是guava中用于字符串格式转换的工具,有以下几种类型 UPPER_CAMEL,比如 UpperCamel UPPER_UNDERSCORE,比如 UPPER_UNDERSCORE LOWER_CAMEL,比如 lowerCamel LOWER_HYPHEN,比如 lower-hyphen ...
Guava EventBus的优势和应用场景如下: 优势: 解耦性:使用事件总线可以将应用程序的不同组件解耦,使得它们之间的通信更加简单和灵活。 线程安全:Guava EventBus提供了线程安全的事件发布和订阅机制,可以在多线程环境下安全地使用。 简单易用:Guava EventBus的API设计简单易用,上手成本低,适用于各种规模的应用程序。 应...