确实没有提到,但由于它只是一种方法,通常很容易弄明白。
这是一个例子:
public class ListenerObject implements CacheEventListener<Object, Object> { @Override public void onEvent(CacheEvent<? extends Object, ? extends Object> event) { System.out.println(event); } }
文档中使用的真实内容是 这里 。
然后,我已经用你的代码玩了一些实际的生产可用代码。
public class CacheHandler implements AutoCloseable { private static final String CACHE_NAME = "basicCache"; private final Cache<String, String> cache; private final CacheManager cacheManager; public CacheHandler() { cacheManager = initCacheManager(); cache = cacheManager.getCache(CACHE_NAME, String.class, String.class); } private CacheManager initCacheManager(){ CacheEventListenerConfigurationBuilder cacheEventListenerConfiguration = CacheEventListenerConfigurationBuilder .newEventListenerConfiguration(new ListenerObject(), EventType.CREATED, EventType.UPDATED) .ordered().synchronous(); return CacheManagerBuilder.newCacheManagerBuilder() .withCache(CACHE_NAME, CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, ResourcePoolsBuilder.heap(10)) .add(cacheEventListenerConfiguration) ).build(true); } public Cache getCache(){ return cache; } @Override public void close() { cacheManager.close(); } public static void main(String[] args) { try(CacheHandler handler = new CacheHandler()) { Cache<String, String> cache = handler.getCache(); cache.put("a", "b"); cache.putIfAbsent("a", "c"); } } }
一些评论:
initCache
withCache
CacheManager
getCache