java - 在java中使用cacheManager清除缓存

标签 java ehcache

我想用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/

相关文章:

java - 如何将行从选择查询动态插入到 java 中的另一个表?

Java/Selenium (ieDriver) - 如何避免在每次测试运行中重复 webapp 登录 Before Method (jUnit)

java - 如何传递 ehcache.xml 中声明的 ehCache 装饰器中的依赖项

java - CacheResolver 和 KeyGenerator 之间有什么区别以及何时使用它们

java - 如何在多个节点上更新ehcache?

java - 如何在 Wicket 6.x 中正确使用 CallBackScript

java - 加工中如何拖动曲线

java - 对象引用设置为 null 后会发生什么

java - 用于标量查询的 Hibernate 缓存

java - 如何在 spring mvc 和 hibernate 中使用 ehcache