@Subscribe@AllowConcurrentEvents解析这两个注解
@Subscribe
和 @AllowConcurrentEvents
是 Guava EventBus(Google 开源的事件总线框架)中用于处理事件订阅的注解,主要用于实现组件间的解耦通信。下面分别解析:
1. @Subscribe
注解
- 作用:标记一个方法为事件订阅者方法,表示该方法可以接收并处理 EventBus 发布的事件。
- 使用场景:当 EventBus 发布某个类型的事件时,所有被
@Subscribe
标记且参数类型与事件类型匹配的方法会被自动调用。
关键特性:
- 方法参数:订阅方法必须且只能有一个参数,参数类型即为该方法要接收的事件类型(支持父类事件,即能接收子类事件)。
- 订阅逻辑:当事件被发布后,EventBus 会根据事件类型找到所有匹配的订阅方法并执行。
示例:
import com.google.common.eventbus.Subscribe;public class OrderEventListener {// 订阅 OrderCreatedEvent 类型的事件@Subscribepublic void handleOrderCreated(OrderCreatedEvent event) {