Interface EventInterceptor
public interface EventInterceptor
Event Interceptor - Pre/post processing hook for event publishing
事件拦截器 - 事件发布的前/后处理钩子
Interceptors are invoked in registration order before and after event dispatching. They enable cross-cutting concerns such as logging, metrics, security checks, and event transformation.
拦截器按注册顺序在事件分发前后被调用。 它们支持横切关注点,如日志、指标、安全检查和事件转换。
Features | 主要功能:
- Pre-publish filtering (block events) - 发布前过滤(阻止事件)
- Post-publish notification - 发布后通知
- Cross-cutting concern support - 横切关注点支持
Usage Examples | 使用示例:
EventInterceptor loggingInterceptor = new EventInterceptor() {
@Override
public boolean beforePublish(Event event) {
log.info("Publishing: {}", event.getClass().getSimpleName());
return true; // allow publishing
}
@Override
public void afterPublish(Event event, boolean dispatched) {
log.info("Published: {}, dispatched={}", event.getClass().getSimpleName(), dispatched);
}
};
Security | 安全性:
- Thread-safe: Implementation dependent - 线程安全: 取决于实现
- Since:
- JDK 25, opencode-base-event V1.0.3
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault voidafterPublish(Event event, boolean dispatched) Called after an event has been dispatched to listeners 在事件分发给监听器之后调用booleanbeforePublish(Event event) Called before an event is dispatched to listeners 在事件分发给监听器之前调用
-
Method Details
-
beforePublish
Called before an event is dispatched to listeners 在事件分发给监听器之前调用- Parameters:
event- the event about to be published | 即将发布的事件- Returns:
- true to allow publishing, false to block | true 允许发布,false 阻止
-
afterPublish
Called after an event has been dispatched to listeners 在事件分发给监听器之后调用- Parameters:
event- the event that was published | 已发布的事件dispatched- true if the event was dispatched to at least one listener | 是否已分发给至少一个监听器
-