驱逐 EhCache 中的所有元素

Vip*_*yal 2 java spring ehcache spring-cache

我正在将 EhCache 与 spring 一起使用,并且需要公开一个端点,该端点将驱逐给定 EhCache 中的所有元素。但是我找不到任何驱逐所有元素的方法。这是微不足道的,可能已经讨论过了,但我在互联网上找不到任何资源。请提供指点。

Jav*_*ano 5

你在使用 Spring Cache 吗?然后将 allEntries 属性设置为 true

@Cacheable("myCache")
public String getCache() {
    try {
        Thread.sleep(3000);
    } catch (final InterruptedException e) {
    }
    return "aaa";
}

@CacheEvict(cacheNames = "myCache", allEntries = true)
public void evictAll() {
}
Run Code Online (Sandbox Code Playgroud)

或者如果您想删除您定义的所有缓存

@Autowired
CacheManager cacheManager;

public void evictAll() {
    cacheManager.getCacheNames()
            .stream()
            .forEach(n -> cacheManager.getCache(n).clear());
}
Run Code Online (Sandbox Code Playgroud)