我想使用JAVA代码清除缓存.
为了这个目标,我写了这段代码:
public void clearCache(){
CacheManager.getInstance().clearAll();
}
Run Code Online (Sandbox Code Playgroud)
这段代码是否正确?有没有办法确认它运作良好?谢谢
是的,您的代码会清除您在cacheManager中拥有的所有缓存.ehcache-documentation说:void clearAll()
Clears the contents of all caches in the CacheManager, but without removing any caches
如果要测试它,可以在缓存中添加一些元素,调用clearCache()然后尝试获取值.本get()-方法应该只返回null.
您不能直接在cacheManager中添加值,它只管理您在配置文件中声明的缓存.(默认情况下,它是ehcache.xml,你可以在ehcache主页上获得它.)你也可以以编程方式添加缓存,即使不知道任何配置.
CacheManager cacheManager = CacheManager.getInstance();
Ehcache cache = new Cache(cacheManager.getConfiguration().getDefaultCacheConfiguration());
cache.setName("cacheName");
cacheManager.addCache(cache);
Run Code Online (Sandbox Code Playgroud)
要向缓存添加值,您必须创建一个Element:
Element element = new Element(key, value)并且只需调用cache.put(element).如果你的缓存变量不再可见,但你的cacheManager是,你也可以这样做cacheManager.getCache(cacheName).put(element)
我希望这有帮助...
如果您知道缓存名称,则可以从CacheManager检索它并使用removeAll()。
CacheManager manager = CacheManager.getInstance();
Ehcache cache = manager.getCache(cacheName);
cache.removeAll();
Run Code Online (Sandbox Code Playgroud)
您的方法有效,但它会清除所有缓存的对象。
| 归档时间: |
|
| 查看次数: |
26023 次 |
| 最近记录: |