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.

@FunctionalInterface public interface CacheEventListener<K,V>
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 Details

    • onEvent

      void onEvent(CacheEvent<K,V> event)
      Handle cache event 处理缓存事件
      Parameters:
      event - the event | 事件
    • interestedEventTypes

      default Set<CacheEvent.EventType> interestedEventTypes()
      Get event types this listener is interested in (default: all) 获取此监听器感兴趣的事件类型(默认:全部)
      Returns:
      set of event types | 事件类型集合
    • isInterestedIn

      default boolean isInterestedIn(CacheEvent.EventType type)
      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

      static <K,V> CacheEventListener<K,V> onPut(Consumer<CacheEvent<K,V>> consumer)
      Create listener for PUT events 为 PUT 事件创建监听器
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      consumer - event handler | 事件处理器
      Returns:
      listener | 监听器
    • onGet

      static <K,V> CacheEventListener<K,V> onGet(Consumer<CacheEvent<K,V>> consumer)
      Create listener for GET events 为 GET 事件创建监听器
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      consumer - event handler | 事件处理器
      Returns:
      listener | 监听器
    • onRemove

      static <K,V> CacheEventListener<K,V> onRemove(Consumer<CacheEvent<K,V>> consumer)
      Create listener for REMOVE events 为 REMOVE 事件创建监听器
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      consumer - event handler | 事件处理器
      Returns:
      listener | 监听器
    • onEvict

      static <K,V> CacheEventListener<K,V> onEvict(Consumer<CacheEvent<K,V>> consumer)
      Create listener for EVICT events 为 EVICT 事件创建监听器
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      consumer - event handler | 事件处理器
      Returns:
      listener | 监听器
    • onExpire

      static <K,V> CacheEventListener<K,V> onExpire(Consumer<CacheEvent<K,V>> consumer)
      Create listener for EXPIRE events 为 EXPIRE 事件创建监听器
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      consumer - event handler | 事件处理器
      Returns:
      listener | 监听器
    • onLoad

      static <K,V> CacheEventListener<K,V> onLoad(Consumer<CacheEvent<K,V>> consumer)
      Create listener for LOAD events 为 LOAD 事件创建监听器
      Type Parameters:
      K - key type | 键类型
      V - value type | 值类型
      Parameters:
      consumer - event handler | 事件处理器
      Returns:
      listener | 监听器
    • onRemoval

      static <K,V> CacheEventListener<K,V> onRemoval(Consumer<CacheEvent<K,V>> consumer)
      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

      static <K,V> CacheEventListener<K,V> onWrite(Consumer<CacheEvent<K,V>> consumer)
      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

      default CacheEventListener<K,V> andThen(CacheEventListener<K,V> after)
      Compose with another listener 与另一个监听器组合
      Parameters:
      after - listener to invoke after this one | 在此监听器之后调用的监听器
      Returns:
      composed listener | 组合的监听器