Interface CacheEventListener<K,V>
- Type Parameters:
K- key type | 键类型V- value type | 值类型Features | 主要功能:
- Functional interface for event handling - 事件处理的函数式接口
- Event type filtering - 事件类型过滤
- Factory methods for common patterns - 常见模式的工厂方法
- Lambda and method reference support - Lambda 和方法引用支持
Security | 安全性:
- Thread-safe: Implementation-dependent - 线程安全: 取决于实现
- Null-safe: Yes - 空值安全: 是
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Cache Event Listener - Receives notifications about cache events
缓存事件监听器 - 接收缓存事件通知
Functional interface for handling cache events. Can be implemented as a lambda or method reference for simple use cases.
用于处理缓存事件的函数式接口。可以实现为 lambda 或方法引用以用于简单场景。
Usage Examples | 使用示例:
// Simple listener - 简单监听器
CacheEventListener<String, User> listener = event -> {
System.out.println("Event: " + event.type() + " key=" + event.key());
};
// Typed listener with filtering - 带过滤的类型监听器
CacheEventListener<String, User> writeListener = CacheEventListener
.forTypes(EnumSet.of(EventType.PUT, EventType.REMOVE), event -> {
auditLog.log("Cache write: " + event);
});
// Listener for specific event type - 特定事件类型的监听器
CacheEventListener<String, User> evictionListener = CacheEventListener
.onEvict(event -> {
metrics.incrementEvictionCount(event.cacheName());
});
- Since:
- JDK 25, opencode-base-cache V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptiondefault CacheEventListener<K, V> andThen(CacheEventListener<K, V> after) Compose with another listener 与另一个监听器组合static <K,V> CacheEventListener <K, V> forTypes(Set<CacheEvent.EventType> types, Consumer<CacheEvent<K, V>> consumer) Create listener for specific event types 为特定事件类型创建监听器default Set<CacheEvent.EventType> Get event types this listener is interested in (default: all) 获取此监听器感兴趣的事件类型(默认:全部)default booleanCheck if listener is interested in event type 检查监听器是否对事件类型感兴趣voidonEvent(CacheEvent<K, V> event) Handle cache event 处理缓存事件static <K,V> CacheEventListener <K, V> onEvict(Consumer<CacheEvent<K, V>> consumer) Create listener for EVICT events 为 EVICT 事件创建监听器static <K,V> CacheEventListener <K, V> onExpire(Consumer<CacheEvent<K, V>> consumer) Create listener for EXPIRE events 为 EXPIRE 事件创建监听器static <K,V> CacheEventListener <K, V> onGet(Consumer<CacheEvent<K, V>> consumer) Create listener for GET events 为 GET 事件创建监听器static <K,V> CacheEventListener <K, V> onLoad(Consumer<CacheEvent<K, V>> consumer) Create listener for LOAD events 为 LOAD 事件创建监听器static <K,V> CacheEventListener <K, V> onPut(Consumer<CacheEvent<K, V>> consumer) Create listener for PUT events 为 PUT 事件创建监听器static <K,V> CacheEventListener <K, V> onRemoval(Consumer<CacheEvent<K, V>> consumer) Create listener for all removal events (REMOVE, EXPIRE, EVICT) 为所有移除事件创建监听器 (REMOVE, EXPIRE, EVICT)static <K,V> CacheEventListener <K, V> onRemove(Consumer<CacheEvent<K, V>> consumer) Create listener for REMOVE events 为 REMOVE 事件创建监听器static <K,V> CacheEventListener <K, V> onWrite(Consumer<CacheEvent<K, V>> consumer) Create listener for all write events (PUT, REMOVE, CLEAR) 为所有写事件创建监听器 (PUT, REMOVE, CLEAR)
-
Method Details
-
onEvent
-
interestedEventTypes
Get event types this listener is interested in (default: all) 获取此监听器感兴趣的事件类型(默认:全部)- Returns:
- set of event types | 事件类型集合
-
isInterestedIn
Check if listener is interested in event type 检查监听器是否对事件类型感兴趣- Parameters:
type- event type | 事件类型- Returns:
- true if interested | 如果感兴趣返回 true
-
forTypes
static <K,V> CacheEventListener<K,V> forTypes(Set<CacheEvent.EventType> types, Consumer<CacheEvent<K, V>> consumer) Create listener for specific event types 为特定事件类型创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
types- event types to listen for | 要监听的事件类型consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onPut
Create listener for PUT events 为 PUT 事件创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onGet
Create listener for GET events 为 GET 事件创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onRemove
Create listener for REMOVE events 为 REMOVE 事件创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onEvict
Create listener for EVICT events 为 EVICT 事件创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onExpire
Create listener for EXPIRE events 为 EXPIRE 事件创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onLoad
Create listener for LOAD events 为 LOAD 事件创建监听器- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onRemoval
Create listener for all removal events (REMOVE, EXPIRE, EVICT) 为所有移除事件创建监听器 (REMOVE, EXPIRE, EVICT)- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
onWrite
Create listener for all write events (PUT, REMOVE, CLEAR) 为所有写事件创建监听器 (PUT, REMOVE, CLEAR)- Type Parameters:
K- key type | 键类型V- value type | 值类型- Parameters:
consumer- event handler | 事件处理器- Returns:
- listener | 监听器
-
andThen
Compose with another listener 与另一个监听器组合- Parameters:
after- listener to invoke after this one | 在此监听器之后调用的监听器- Returns:
- composed listener | 组合的监听器
-