JAVA コードを使用してキャッシュをクリアしたい。
この目標のために、次のコードを書きます。
public void clearCache(){
CacheManager.getInstance().clearAll();
}
このコードは正しいですか?それがうまく機能することを確認する方法はありますか?ありがとう
はい、コードは 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);
キャッシュに値を追加するには、Element: を作成し
Element element = new Element(key, value)
、単純に を呼び出す必要がありますcache.put(element)
。キャッシュ変数が表示されなくなったが、キャッシュマネージャーが表示されている場合は、次のようにして同じことができますcacheManager.getCache(cacheName).put(element)
これが役立つことを願っています...
キャッシュ名がわかっている場合は、CacheManagerから取得してremoveAll()を使用できます。
CacheManager manager = CacheManager.getInstance();
Ehcache cache = manager.getCache(cacheName);
cache.removeAll();
あなたのアプローチは機能しますが、すべてのキャッシュのオブジェクトがクリアされます。
これを実現するには、次の 2 つの方法があります。