我想用JAVA代码清除缓存。
为了这个目标,我写了这段代码:
public void clearCache(){
CacheManager.getInstance().clearAll();
}
这段代码是否正确? 有没有办法确认它是否有效? 谢谢
最佳答案
是的,您的代码会清除您在 cacheManager 中的所有缓存。
ehcache 文档说:void clearAll()
清除 CacheManager 中所有缓存的内容,但不删除任何缓存
如果你想测试它,你可以添加一些元素到你的缓存中,调用clearCache()
然后尝试获取值。 get()
方法应该只返回 null
。
您不能直接在 cacheManager 中添加值,它只管理您在配置文件中声明的缓存。 (默认是ehcache.xml,你可以在ehcache主页上找到。) 您还可以通过编程方式添加缓存,即使对配置一无所知。
CacheManager cacheManager = CacheManager.getInstance();
Ehcache cache = new Cache(cacheManager.getConfiguration().getDefaultCacheConfiguration());
cache.setName("cacheName");
cacheManager.addCache(cache);
要向缓存中添加一个值,您必须创建一个元素:
Element element = new Element(key, value)
并简单地调用 cache.put(element)
。
如果您的缓存变量不再可见,但您的缓存管理器可见,您可以使用 cacheManager.getCache(cacheName).put(element)
我希望这有助于...
关于java - 在java中使用cacheManager清除缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693780/