Java
DefaultHandlerContext
默认的消息处理器上下文,使用 Euonia 的
ServiceProvider 进行依赖解析。该类管理处理器注册并将传入的消息分派到适当的处理器。它支持泛型处理器类型注册(通过 DI 解析)和基于反射的注册(通过 ChannelRegistration)。
- Type class
- Package: com.euonia.bus.handle
- Author: damon(zhaorong@outlook.com)Fields¶
| Field | Type | Description |
|---|---|---|
LOGGER |
Logger |
日志记录器 |
handlerContainer |
ConcurrentMap<String, List<HandlerRegistration>> |
处理器容器 |
publisher |
SubmissionPublisher<MessageSubscribedEvent> |
消息订阅事件发布者 |
convention |
MessageConvention |
消息约定 |
inboxStore |
InboxStore |
收件箱存储 |
idempotentHandler |
IdempotentHandler |
幂等处理器 |
Methods¶
DefaultHandlerContext¶
初始化
DefaultHandlerContext 的新实例。
- Parameters:
- provider (ServiceProvider): 用于解析处理器和其他服务的服务提供者onMessageSubscribed¶
订阅消息订阅事件。
- Parameters:
-
listener (Consumer<MessageSubscribedEvent>): 事件监听器register¶
为给定的消息类型注册一个消息处理器类型。处理器将在分发时从
ServiceProvider 中解析。
- Parameters:
- channel (String): 要注册处理器的通道名称
- messageType (Class<M>): 消息的类
- handlerType (Class<H>): 处理器的类register¶
注册由
ChannelHandler 描述的处理器。该注册包含处理器类型、要调用的方法和通道名称。
- Parameters:
- channel (String): 要注册处理器的通道名称
- channelHandler (ChannelHandler): 描述要注册的处理器的 ChannelHandlerhandleAsync¶
处理异步消息。对于单播消息使用单个处理器,对于多播消息并行执行所有处理器。
- Parameters:
-
channel (String): 通道名称
- recipient (String): 接收者
- envelope (MessageEnvelope<?>): 消息信封
- context (MessageContext): 消息上下文
- Returns: CompletableFuture<Object> - 处理结果 future