@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) {