クラス ConcurrentMapCacheManager

java.lang.ObjectSE
org.springframework.cache.concurrent.ConcurrentMapCacheManager
実装されたすべてのインターフェース:
AwareBeanClassLoaderAwareCacheManager

public class ConcurrentMapCacheManager extends ObjectSE implements CacheManager, BeanClassLoaderAware
getCache(java.lang.String) リクエストごとに ConcurrentMapCache インスタンスを遅延ビルドする CacheManager 実装。また、キャッシュ名のセットが setCacheNames(java.util.Collection<java.lang.String>) を介して事前に定義されている「静的」モードもサポートしています。実行時に追加のキャッシュ領域を動的に作成することはありません。

基本的な CompletableFuture 適応を通じて、早期に決定されたキャッシュミスを使用して、非同期 Cache.retrieve(Object) および Cache.retrieve(Object, Supplier) 操作をサポートします。

メモ: これは決して洗練された CacheManager ではありません。キャッシュ構成オプションはありません。ただし、テストや単純なキャッシュシナリオには役立つ場合があります。高度なローカルキャッシングが必要な場合は、CaffeineCacheManager または JCacheCacheManager を検討してください。

導入:
3.1
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    動的な ConcurrentMapCacheManager を構築し、リクエストされているキャッシュインスタンスを遅延作成します。
    静的 ConcurrentMapCacheManager を構築し、指定されたキャッシュ名のみのキャッシュを管理します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected Cache
    指定されたキャッシュ名の新しい ConcurrentMapCache インスタンスを作成します。
    指定された名前に関連付けられたキャッシュを取得します。
    このマネージャーが知っているキャッシュ名のコレクションを取得します。
    boolean
    このキャッシュマネージャーが、すべてのキャッシュの null 値を受け入れて変換するかどうかを返します。
    boolean
    このキャッシュマネージャーが各エントリのコピーを保存するか、すべてのキャッシュの参照を保存するかを返します。
    void
    指定されたキャッシュをこのキャッシュマネージャーから削除します。
    void
    setAllowNullValues(boolean allowNullValues)
    このキャッシュマネージャーのすべてのキャッシュの null 値を受け入れて変換するかどうかを指定します。
    void
    Bean class loaderSE を Bean インスタンスに提供するコールバック。
    void
    この CacheManager の「静的」モードのキャッシュ名のセットを指定します。
    void
    setStoreByValue(boolean storeByValue)
    このキャッシュマネージャーが各エントリのコピー(true またはそのすべてのキャッシュの参照(false)を保存するかどうかを指定します。

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

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • ConcurrentMapCacheManager

      public ConcurrentMapCacheManager()
      動的な ConcurrentMapCacheManager を構築し、リクエストされているキャッシュインスタンスを遅延作成します。
    • ConcurrentMapCacheManager

      public ConcurrentMapCacheManager(StringSE... cacheNames)
      静的 ConcurrentMapCacheManager を構築し、指定されたキャッシュ名のみのキャッシュを管理します。
  • メソッドの詳細

    • setCacheNames

      public void setCacheNames(@Nullable CollectionSE<StringSE> cacheNames)
      この CacheManager の「静的」モードのキャッシュ名のセットを指定します。

      キャッシュの数とその名前は、このメソッドの呼び出し後に修正され、実行時にさらにキャッシュ領域が作成されることはありません。

      null コレクション引数でこれを呼び出すと、モードが「動的」にリセットされ、キャッシュをさらに作成できるようになります。

    • setAllowNullValues

      public void setAllowNullValues(boolean allowNullValues)
      このキャッシュマネージャーのすべてのキャッシュの null 値を受け入れて変換するかどうかを指定します。

      ConcurrentHashMap 自体が null 値をサポートしていないにもかかわらず、デフォルトは "true" です。内部ホルダーオブジェクトは、ユーザーレベルの null を格納するために使用されます。

      メモ: null 値の設定を変更すると、既存のキャッシュがあればすべてリセットされ、新しい null 値の要件でキャッシュが再構成されます。

    • isAllowNullValues

      public boolean isAllowNullValues()
      このキャッシュマネージャーが、すべてのキャッシュの null 値を受け入れて変換するかどうかを返します。
    • setStoreByValue

      public void setStoreByValue(boolean storeByValue)
      このキャッシュマネージャーが各エントリのコピー(true またはそのすべてのキャッシュの参照(false)を保存するかどうかを指定します。

      デフォルトは "false" なので、値自体が保存され、キャッシュされた値に対して直列化可能な契約は必要ありません。

      メモ: 値によるストアの設定を変更すると、既存のキャッシュがあればそれがすべてリセットされ、新しい値によるストアの要件でキャッシュが再構成されます。

      導入:
      4.3
    • isStoreByValue

      public boolean isStoreByValue()
      このキャッシュマネージャーが各エントリのコピーを保存するか、すべてのキャッシュの参照を保存するかを返します。値による保存が有効な場合、キャッシュエントリは直列化可能である必要があります。
      導入:
      4.3
    • setBeanClassLoader

      public void setBeanClassLoader(ClassLoaderSE classLoader)
      インターフェースからコピーされた説明: BeanClassLoaderAware
      Bean class loaderSE を Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定、ただし InitializingBean's InitializingBean.afterPropertiesSet() メソッドやカスタム init-method などの初期化コールバックの前に呼び出さます。

      次で指定:
      インターフェース BeanClassLoaderAwaresetBeanClassLoader 
      パラメーター:
      classLoader - 所有クラスローダー
    • getCacheNames

      public CollectionSE<StringSE> getCacheNames()
      インターフェースからコピーされた説明: CacheManager
      このマネージャーが知っているキャッシュ名のコレクションを取得します。
      次で指定:
      インターフェース CacheManagergetCacheNames 
      戻り値:
      キャッシュマネージャーが知っているすべてのキャッシュの名前
    • getCache

      @Nullable public Cache getCache(StringSE name)
      インターフェースからコピーされた説明: CacheManager
      指定された名前に関連付けられたキャッシュを取得します。

      ネイティブプロバイダーがサポートしている場合、キャッシュは実行時に遅延して作成される場合があることに注意してください。

      次で指定:
      インターフェース CacheManagergetCache 
      パラメーター:
      name - キャッシュ識別子 (null であってはなりません)
      戻り値:
      関連するキャッシュ、またはそのようなキャッシュが存在しないか作成できない場合は null 
    • removeCache

      public void removeCache(StringSE name)
      指定されたキャッシュをこのキャッシュマネージャーから削除します。
      パラメーター:
      name - キャッシュの名前
      導入:
      6.1.15
    • createConcurrentMapCache

      protected Cache createConcurrentMapCache(StringSE name)
      指定されたキャッシュ名の新しい ConcurrentMapCache インスタンスを作成します。
      パラメーター:
      name - キャッシュの名前
      戻り値:
      ConcurrentMapCache (またはそのデコレータ)