JCache (Payara 4.1.151) - khasunuma/Payara GitHub Wiki

目次

1. 概要

このページでは Payara 4.1.151 の JCache 機能の使い方について説明します。 Payara の JSR 107 (JCache) 実装は Hazelcast です。

2. ドキュメント規約

このドキュメント全体で、パスの表現はすべて Unix/Linux ファイル・パス構造 (スラッシュ前置) を使用します。

3. アプリケーションで JCache を使用するには

以下のセクションでは JCache へのアクセス方法と使用方法をコードを交えて説明します。

3.1 JSR 107 CachingProvider および CacheManager へのアクセス

Cache を作成するには、CachingProviderCacheManager が必要です。Payara の埋め込み Hazelcast には CachingProviderCacheManager が 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 に埋め込まれた CachingProviderCacheManager へアクセスするには、インジェクションを利用することも可能です。アプリケーションへのインジェクションは以下のように行います (注: 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;

3.2 JCache アノテーションの使い方

Payara で JCache アノテーションのすべてを利用できるようにするためには、インターセプターを実装する必要があります。 該当する JCache アノテーションは以下の通りです:

  • @CachePut - 特定のキーと値の組をキャッシュへ Put する。
  • @CacheRemove - 特定のキーと値の組をキャッシュから削除する。
  • @CacheResult - 特定のキーを持つ値を取得する。
  • @CacheRemoveAll - すべてのキーと値の組をキャッシュから削除する。
  • @CacheDefaults - CacheResult、CachePut、CacheRemove、CacheRemoveAll のクラスレベルでのデフォルト構成を許可する。
  • @CacheKey - メソッド引数がキャッシュのキーであるとマークする。
  • @CacheValue - メソッド引数がキャッシュの値であるとマークする。
⚠️ **GitHub.com Fallback** ⚠️