java.lang.Object
org.miaixz.bus.core.lang.event.SimpleEventPublisher
- All Implemented Interfaces:
EventPublisher
简单的事件发布者实现,基于
Subscriber和Event实现- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
ConstructorsConstructorDescriptionSimpleEventPublisher(List<Subscriber> subscribers, Loader<ExecutorService> executorServiceLoader) 构造 -
Method Summary
Modifier and TypeMethodDescriptionstatic SimpleEventPublisherof()创建一个默认的SimpleEventPublisher,默认线程池为ThreadKit.newExecutor()static SimpleEventPublisherof(List<Subscriber> subscribers) 创建一个默认的SimpleEventPublisher,默认线程池为ThreadKit.newExecutor()void发布事件,事件发布者将事件发布给多个订阅者,可以自定义发布策略,如: 所有订阅者都接收此消息(多订阅) 订阅者按照顺序或权重接收此消息,接收后其它订阅者不再接收。register(Subscriber subscriber) 注册订阅者,订阅者将接收到所有发布者发布的事件setExecutorService(ExecutorService executorService) 设置自定义的ExecutorService线程池,默认为ThreadKit.newExecutor()
-
Constructor Details
-
SimpleEventPublisher
public SimpleEventPublisher(List<Subscriber> subscribers, Loader<ExecutorService> executorServiceLoader) 构造- Parameters:
subscribers- 订阅者列表executorServiceLoader- 线程池加载器,用于异步执行,默认为ThreadKit.newExecutor()
-
-
Method Details
-
of
创建一个默认的SimpleEventPublisher,默认线程池为ThreadKit.newExecutor()- Returns:
SimpleEventPublisher
-
of
创建一个默认的SimpleEventPublisher,默认线程池为ThreadKit.newExecutor()- Parameters:
subscribers- 订阅者列表,也可以传入空列表后调用register(Subscriber)添加- Returns:
SimpleEventPublisher
-
setExecutorService
设置自定义的ExecutorService线程池,默认为ThreadKit.newExecutor()- Parameters:
executorService-ExecutorService,不能为空- Returns:
- this
-
register
Description copied from interface:EventPublisher注册订阅者,订阅者将接收到所有发布者发布的事件- Specified by:
registerin interfaceEventPublisher- Parameters:
subscriber- 订阅者- Returns:
- this
-
publish
Description copied from interface:EventPublisher发布事件,事件发布者将事件发布给多个订阅者,可以自定义发布策略,如:- 所有订阅者都接收此消息(多订阅)
- 订阅者按照顺序或权重接收此消息,接收后其它订阅者不再接收。(单订阅)
- 按照自定义规则选择要接收消息的订阅者,如根据消息或实践类型(选择性多订阅)
- Specified by:
publishin interfaceEventPublisher- Parameters:
event- 事件对象
-