クラス JCacheCache

実装されたすべてのインターフェース:
Cache

public class JCacheCache extends AbstractValueAdaptingCache
javax.cache.Cache インスタンス上での Cache 実装。

メモ: このクラスは、Spring 4.0 以降、JCache 1.0 用に更新されました。

導入:
3.2
作成者:
Juergen Hoeller, Stephane Nicoll
関連事項:
  • ネストされたクラスのサマリー

    インターフェース org.springframework.cache.Cache から継承されたネストクラス / インターフェース

    Cache.ValueRetrievalException, Cache.ValueWrapper
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    JCacheCache(javax.cache.Cache<ObjectSE,ObjectSE> jcache)
    JCacheCache インスタンスを作成します。
    JCacheCache(javax.cache.Cache<ObjectSE,ObjectSE> jcache, boolean allowNullValues)
    JCacheCache インスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    すべてのマッピングを削除してキャッシュをクリアします。
    void
    このキーが存在する場合、このキャッシュからこのキーのマッピングを削除します。
    boolean
    このキーが存在する場合は、このキーのマッピングを削除し、以降の検索ではキーがすぐに見えないことを期待します。
    <T> T
    get(ObjectSE key, CallableSE<T> valueLoader)
    このキャッシュが指定されたキーをマップする値を返し、必要に応じて valueLoader からその値を取得します。
    final StringSE
    キャッシュ名を返します。
    final javax.cache.Cache<ObjectSE,ObjectSE>
    基になるネイティブキャッシュプロバイダーを返します。
    boolean
    すべてのマッピングを削除してキャッシュを無効にし、以降のルックアップではすべてのエントリがすぐに表示されないようにします。
    protected ObjectSE
    基になるストアで実際のルックアップを実行します。
    void
    put(ObjectSE key, ObjectSE value)
    指定された値をこのキャッシュ内の指定されたキーに関連付けます。
    指定された値が設定されていない場合、指定された値をこのキャッシュ内の指定されたキーと原子的に関連付けます。

    クラス org.springframework.cache.support.AbstractValueAdaptingCache から継承されたメソッド

    fromStoreValue, get, get, isAllowNullValues, toStoreValue, toValueWrapper

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース org.springframework.cache.Cache から継承されたメソッド

    retrieve, retrieve
  • コンストラクターの詳細

    • JCacheCache

      public JCacheCache(javax.cache.Cache<ObjectSE,ObjectSE> jcache)
      JCacheCache インスタンスを作成します。
      パラメーター:
      jcache - JCache キャッシュインスタンスのバッキング
    • JCacheCache

      public JCacheCache(javax.cache.Cache<ObjectSE,ObjectSE> jcache, boolean allowNullValues)
      JCacheCache インスタンスを作成します。
      パラメーター:
      jcache - JCache キャッシュインスタンスのバッキング
      allowNullValues - このキャッシュの null 値を受け入れて変換するかどうか
  • メソッドの詳細

    • getName

      public final StringSE getName()
      インターフェースからコピーされた説明: Cache
      キャッシュ名を返します。
    • getNativeCache

      public final javax.cache.Cache<ObjectSE,ObjectSE> getNativeCache()
      インターフェースからコピーされた説明: Cache
      基になるネイティブキャッシュプロバイダーを返します。
    • lookup

      @Nullable protected ObjectSE lookup(ObjectSE key)
      クラスからコピーされた説明: AbstractValueAdaptingCache
      基になるストアで実際のルックアップを実行します。
      次で指定:
      クラス AbstractValueAdaptingCachelookup 
      パラメーター:
      key - 関連する値が返されるキー
      戻り値:
      キーの生のストア値、ない場合は null 
    • get

      @Nullable public <T> T get(ObjectSE key, CallableSE<T> valueLoader)
      インターフェースからコピーされた説明: Cache
      このキャッシュが指定されたキーをマップする値を返し、必要に応じて valueLoader からその値を取得します。このメソッドは、従来の「キャッシュされている場合は返す、そうでない場合は作成、キャッシュして返す」パターンの単純な代替を提供します。

      可能な場合、実装は、同じキーへの同時アクセスの場合に指定された valueLoader が 1 回だけ呼び出されるように、ロード操作が同期されることを確認する必要があります。

      valueLoader が例外をスローした場合、Cache.ValueRetrievalException にラップされます

      パラメーター:
      key - 関連する値が返されるキー
      戻り値:
      このキャッシュが指定されたキーをマップする値
      関連事項:
    • put

      public void put(ObjectSE key, @Nullable ObjectSE value)
      インターフェースからコピーされた説明: Cache
      指定された値をこのキャッシュ内の指定されたキーに関連付けます。

      キャッシュに以前にこのキーのマッピングが含まれていた場合、古い値は指定された値に置き換えられます。

      実際の登録は非同期方式または遅延方式で実行できますが、その後の検索ではエントリがまだ表示されていない可能性があります。これは、たとえばトランザクションキャッシュデコレータの場合です。Cache.putIfAbsent(java.lang.Object, java.lang.Object) を使用して、即時登録を保証します。

      キャッシュが CompletableFutureSE およびリアクティブインタラクションと互換性があると想定されている場合、put 操作は事実上ノンブロッキングであり、バックエンドのライトスルーは非同期で発生する必要があります。これは、Cache.retrieve(Object) および Cache.retrieve(Object, Supplier) をサポートするように実装および構成されたキャッシュとともに行われます。

      パラメーター:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      関連事項:
    • putIfAbsent

      @Nullable public Cache.ValueWrapper putIfAbsent(ObjectSE key, @Nullable ObjectSE value)
      インターフェースからコピーされた説明: Cache
      指定された値が設定されていない場合、指定された値をこのキャッシュ内の指定されたキーと原子的に関連付けます。

      これは次と同等です:

      
       ValueWrapper existingValue = cache.get(key);
       if (existingValue == null) {
           cache.put(key, value);
       }
       return existingValue;
       
      ただし、アクションはアトミックに実行されます。すべての初期状態の CacheManager 実装は、put をアトミックに実行することができるが、オペレーションは、たとえば、非アトミックな方法で、存在のチェックと後続の put との 2 つのステップで実装することもできます。詳細については、使用しているネイティブキャッシュ実装のドキュメントを参照してください。

      デフォルトの実装は、上記のコードスニペットの行に沿って Cache.get(Object) および Cache.put(Object, Object) に委譲します。

      パラメーター:
      key - 指定された値が関連付けられるキー
      value - 指定されたキーに関連付けられる値
      戻り値:
      このキャッシュが指定されたキー(null 自体の場合もある)をマップする値、またはこの呼び出しの前にキャッシュにそのキーのマッピングが含まれていなかった場合は null したがって、null を返すことは、指定された value がキーに関連付けられていることを示すインジケーターです。
      関連事項:
    • evict

      public void evict(ObjectSE key)
      インターフェースからコピーされた説明: Cache
      このキーが存在する場合、このキャッシュからこのキーのマッピングを削除します。

      実際のエビクションは非同期方式または遅延方式で実行できますが、その後のルックアップではおそらくエントリが引き続き表示されます。これは、たとえばトランザクションキャッシュデコレータの場合です。Cache.evictIfPresent(java.lang.Object) を使用して、即時の削除を保証します。

      キャッシュが CompletableFutureSE およびリアクティブインタラクションと互換性があると想定されている場合、エビクト操作は事実上ノンブロッキングであり、バックエンドのライトスルーは非同期で発生する必要があります。これは、Cache.retrieve(Object) および Cache.retrieve(Object, Supplier) をサポートするように実装および構成されたキャッシュとともに行われます。

      パラメーター:
      key - マッピングがキャッシュから削除されるキー
      関連事項:
    • evictIfPresent

      public boolean evictIfPresent(ObjectSE key)
      インターフェースからコピーされた説明: Cache
      このキーが存在する場合は、このキーのマッピングを削除し、以降の検索ではキーがすぐに見えないことを期待します。

      デフォルトの実装は Cache.evict(Object) に委譲し、未決定のキーの存在について false を返します。キャッシュプロバイダー、特にキャッシュデコレーターは、可能な場合は直ちにエビクションを実行し(たとえば、トランザクション内で一般的にキャッシュ操作を遅延させる場合)、指定されたキーの事前の存在を確実に判断することをお勧めします。

      パラメーター:
      key - マッピングがキャッシュから削除されるキー
      戻り値:
      キャッシュに以前にこのキーのマッピングがあることがわかっていた場合は true、ない場合は false (または事前の存在を判断できなかった場合)
      関連事項:
    • clear

      public void clear()
      インターフェースからコピーされた説明: Cache
      すべてのマッピングを削除してキャッシュをクリアします。

      実際の消去は、非同期または遅延方式で実行され、その後のルックアップでエントリが引き続き表示される可能性があります。これは、たとえばトランザクションキャッシュデコレータの場合です。Cache.invalidate() を使用して、エントリの即時削除を保証します。

      キャッシュが CompletableFutureSE およびリアクティブインタラクションと互換性があると想定されている場合、クリア操作は事実上ノンブロッキングであり、バックエンドのライトスルーは非同期で発生する必要があります。これは、Cache.retrieve(Object) および Cache.retrieve(Object, Supplier) をサポートするように実装および構成されたキャッシュとともに行われます。

      関連事項:
    • invalidate

      public boolean invalidate()
      インターフェースからコピーされた説明: Cache
      すべてのマッピングを削除してキャッシュを無効にし、以降のルックアップではすべてのエントリがすぐに表示されないようにします。
      戻り値:
      キャッシュにマッピングがあることがわかっている場合は true、マッピングがない場合は false (または、エントリの事前の存在を判別できなかった場合)
      関連事項: