2017-12-27 21 views
0

私は春にEhCacheを使用しており、指定されたEhCacheのすべての要素を削除するエンドポイントを公開する必要があります。しかし、私はすべての要素を排除する方法を見つけることができません。それは簡単ではなく、すでに議論されているかもしれませんが、私はインターネット上のリソースを見つけることができませんでした。ポインタを提供してください。EhCache内のすべての要素を取り除く

答えて

2

あなたはSpringキャッシュを使用していますか?その後、 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() { 
} 

またはあなたが

@Autowired 
CacheManager cacheManager; 

public void evictAll() { 
    cacheManager.getCacheNames() 
      .stream() 
      .forEach(n -> cacheManager.getCache(n).clear()); 
} 
+0

を定義されたすべてのキャッシュを削除したい場合は、[はい、私は小枝のキャッシュを使用しています。しかし、我々は実用的にこれを行うことができますか? –

+0

私は自分の答えを修正しました。あなたはすべてのキャッシュを退去させたいときにevictAllを呼び出すべきです – Javvano

+0

あなたの返事をありがとう。しかし、私がここに見る問題は、別にやりたいのであれば、すべてのキャッシュに対してevictAllメソッドを定義する必要があるということです。これを動的に行うことはできませんか?次のようなものがあります。 evictAllInCache(String cacheName){ キャッシュキャッシュ= cacheManaget.getCache(cacheName); cache.evictAll(); //このようなもの } –

関連する問題