Module bus.core

Class SimpleEventPublisher

java.lang.Object
org.miaixz.bus.core.lang.event.SimpleEventPublisher
All Implemented Interfaces:
EventPublisher

public class SimpleEventPublisher extends Object implements EventPublisher
简单的事件发布者实现,基于SubscriberEvent实现
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

  • Method Details

    • of

      public static SimpleEventPublisher of()
      创建一个默认的SimpleEventPublisher,默认线程池为ThreadKit.newExecutor()
      Returns:
      SimpleEventPublisher
    • of

      public static SimpleEventPublisher of(List<Subscriber> subscribers)
      创建一个默认的SimpleEventPublisher,默认线程池为ThreadKit.newExecutor()
      Parameters:
      subscribers - 订阅者列表,也可以传入空列表后调用register(Subscriber)添加
      Returns:
      SimpleEventPublisher
    • setExecutorService

      public SimpleEventPublisher setExecutorService(ExecutorService executorService)
      设置自定义的ExecutorService线程池,默认为ThreadKit.newExecutor()
      Parameters:
      executorService - ExecutorService,不能为空
      Returns:
      this
    • register

      public EventPublisher register(Subscriber subscriber)
      Description copied from interface: EventPublisher
      注册订阅者,订阅者将接收到所有发布者发布的事件
      Specified by:
      register in interface EventPublisher
      Parameters:
      subscriber - 订阅者
      Returns:
      this
    • publish

      public void publish(Event event)
      Description copied from interface: EventPublisher
      发布事件,事件发布者将事件发布给多个订阅者,可以自定义发布策略,如:
      • 所有订阅者都接收此消息(多订阅)
      • 订阅者按照顺序或权重接收此消息,接收后其它订阅者不再接收。(单订阅)
      • 按照自定义规则选择要接收消息的订阅者,如根据消息或实践类型(选择性多订阅)
      Specified by:
      publish in interface EventPublisher
      Parameters:
      event - 事件对象