forked from payara/Payara
-
Notifications
You must be signed in to change notification settings - Fork 0
JCache (Payara 4.1.151)
HASUNUMA Kenji edited this page Aug 2, 2015
·
4 revisions
このページでは Payara 4.1.151 の JCache 機能の使い方について説明します。 Payara の JSR 107 (JCache) 実装は Hazelcast です。
このドキュメント全体で、パスの表現はすべて Unix/Linux ファイル・パス構造 (スラッシュ前置) を使用します。
以下のセクションでは JCache へのアクセス方法と使用方法をコードを交えて説明します。
Cache を作成するには、CachingProvider と CacheManager が必要です。Payara の埋め込み Hazelcast には CachingProvider と CacheManager が JNDI で登録されており、これらを新たに作成する必要はありません。これらにアクセスするには、以下のようにいくつかのクラスをインポートし、2 つの変数を初期化します:
import javax.cache.spi.CachingProvider;
import javax.cache.CacheManager;
...
Context ctx = new InitialContext();
CachingProvider provider = (CachingProvider) ctx.lookup("payara/CachingProvider");
CacheManager manager = (CacheManager) ctx.lookup("payara/CacheManager");
Payara に埋め込まれた CachingProvider と CacheManager へアクセスするには、インジェクションを利用することも可能です。アプリケーションへのインジェクションは以下のように行います (注: war または jar は暗黙的または明示的に Bean Archive でなけければなりません。すなわち、Bean Definition アノテーションをふかした CDI Bean、EJB セッション Bean または beans.xml ファイルのいずれかが含まれている必要があります):
import javax.cache.CacheManager;
import javax.cache.spi.CachingProvider;
import javax.inject.Inject;
...
@Inject
CacheManager manager;
@Inject
CachingProvider provider;
Payara で JCache アノテーションのすべてを利用できるようにするためには、インターセプターを実装する必要があります。 該当する JCache アノテーションは以下の通りです:
- @CachePut - 特定のキーと値の組をキャッシュへ Put する。
- @CacheRemove - 特定のキーと値の組をキャッシュから削除する。
- @CacheResult - 特定のキーを持つ値を取得する。
- @CacheRemoveAll - すべてのキーと値の組をキャッシュから削除する。
- @CacheDefaults - CacheResult、CachePut、CacheRemove、CacheRemoveAll のクラスレベルでのデフォルト構成を許可する。
- @CacheKey - メソッド引数がキャッシュのキーであるとマークする。
- @CacheValue - メソッド引数がキャッシュの値であるとマークする。