2017-12-27 5 views
0

Ich verwende EhCache mit spring und muss einen Endpunkt angeben, der alle Elemente in gegebenen EhCache entfernt. Aber ich finde keine Methode, die alle Elemente vertreibt. Es ist trivial und könnte bereits diskutiert werden, aber ich konnte keine Ressource im Internet finden. Bitte geben Sie Hinweise.Alle Elemente in EhCache entfernen

Antwort

2

verwenden Sie Spring Cache? dann setzen treu allEntries Eigenschaft

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

@CacheEvict(cacheNames = "myCache", allEntries = true) 
public void evictAll() { 
} 

oder wenn Sie alle Caches löschen möchten, die Sie

@Autowired 
CacheManager cacheManager; 

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

Ja definiert, ich Zweig Cache bin mit aber können wir diese pragmatisch tun? –

+0

Ich änderte meine Antwort. Sie sollten evictAll aufrufen, wenn Sie alle Caches entfernen möchten – Javvano

+0

Danke für Ihre Antwort. Aber das Problem, das ich hier sehe, ist, dass ich die Methode evictAll für alle Caches definieren müsste, wenn ich es getrennt machen möchte. Ist dies nicht dynamisch möglich? So etwas wie: evictAllInCache (String cacheName) { Zwischenspeicher cache = cacheManaget.getCache (cacheName); cache.evictAll(); // So etwas wie das } –

Verwandte Themen