# est-spi-event **Repository Path**: est-spi/event ## Basic Information - **Project Name**: est-spi-event - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EST SPI Event [English Version](README.en.md) ## EST SPI 事件模块 est-spi-event 是 EST SPI 框架的事件模块,提供了事件总线、事件监听器和事件发布等功能。 ### 核心功能 #### Event - 事件接口 所有事件的统一接口,包含事件名称、时间戳和事件源。 #### EventListener - 事件监听器 事件监听器接口,用于监听和处理事件。 #### EventPublisher - 事件发布器 事件发布器接口,用于发布事件。 #### EventBus - 事件总线 事件总线(单例),负责管理事件监听器和发布事件。 #### AbstractEvent - 抽象事件类 提供事件的基础实现,包含名称、时间戳和源信息。 ### 快速开始 #### 定义事件 ```java import ltd.idcu.est.spi.event.AbstractEvent; public class UserRegisteredEvent extends AbstractEvent { private final String username; private final String email; public UserRegisteredEvent(String username, String email) { super("user.registered"); this.username = username; this.email = email; } public String getUsername() { return username; } public String getEmail() { return email; } } ``` #### 注册监听器并发布事件 ```java import ltd.idcu.est.spi.event.EventBus; import ltd.idcu.est.spi.event.EventListener; public class Example { public static void main(String[] args) { EventBus eventBus = EventBus.getInstance(); EventListener listener = event -> { System.out.println("User registered: " + event.getUsername()); System.out.println("Email: " + event.getEmail()); }; eventBus.register(UserRegisteredEvent.class, listener); UserRegisteredEvent event = new UserRegisteredEvent("john", "john@example.com"); eventBus.publish(event); eventBus.unregister(UserRegisteredEvent.class, listener); } } ``` #### 使用事件名称注册监听器 ```java import ltd.idcu.est.spi.event.EventBus; import ltd.idcu.est.spi.event.EventListener; import ltd.idcu.est.spi.event.Event; public class Example { public static void main(String[] args) { EventBus eventBus = EventBus.getInstance(); EventListener listener = event -> { System.out.println("Received event: " + event.getName()); System.out.println("Timestamp: " + event.getTimestamp()); }; eventBus.register("user.registered", listener); eventBus.register("user.logged_in", listener); eventBus.publish(new UserRegisteredEvent("john", "john@example.com")); eventBus.clear(); } } ``` ### Maven 依赖 ```xml ltd.idcu.est.spi est-spi-event 1.0.0 ``` ### 许可证 MIT License