キャッシュを動的に作成/削除できるInfinispanの組み込みキャッシュアーキテクチャを使用しています。
ユーザーが存在しないキャッシュを取得しようとすると、例外を取得する必要がありますが、EmbeddedCacheManager
APIはこれを支援していません。このAPIは2つのオプションを提供します
get(String name, true)
-取得して作成しますget(String name, false)
取得するが作成しない
私のアプローチ?ユーザーが単純にキャッシュを取得する場合はget(String name, false)
、を使用し、ユーザーがキャッシュを作成する場合はを使用しますget(String name, true)
。ここまでは順調ですね。
ここで問題が発生します。一部のキャッシュはアプリケーションによって作成されませんが、XMLで定義されます。したがって、ユーザーがこれらの「組み込み」キャッシュの1つを使用get(String name, false)
して取得しても、キャッシュは取得されません。
XMLで定義されたキャッシュを識別できれば、これらを解決できます。
注:現時点では、XMLで定義されているキャッシュの名前の前に付けていますが、これはコードの抽象化にとって醜いものであり、非常に面倒になっています。