public class CaffeineCacheManager extends ObjectSE implements CacheManager
getCache(java.lang.String)
リクエストごとに CaffeineCache
インスタンスを遅延ビルドする CacheManager
実装。また、キャッシュ名のセットが setCacheNames(java.util.Collection<java.lang.String>)
を介して事前に定義されている「静的」モードもサポートしています。実行時に追加のキャッシュ領域を動的に作成することはありません。 基礎となるキャッシュの構成は、Caffeine
ビルダーまたは CaffeineSpec
を介して微調整でき、setCaffeine(com.github.benmanes.caffeine.cache.Caffeine<java.lang.Object, java.lang.Object>)
/setCaffeineSpec(com.github.benmanes.caffeine.cache.CaffeineSpec)
を介してこの CacheManager に渡されます。CaffeineSpec
-compliant 式の値は、"cacheSpecification"
Bean プロパティを介して適用することもできます。
Caffeine 2.1 以上が必要です。
CaffeineCache
コンストラクターと説明 |
---|
CaffeineCacheManager() 動的な CaffeineCacheManager を構築し、リクエストされているキャッシュインスタンスを遅延作成します。 |
CaffeineCacheManager(StringSE... cacheNames) 静的 CaffeineCacheManager を構築し、指定されたキャッシュ名のみのキャッシュを管理します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected Cache | adaptCaffeineCache(StringSE name, com.github.benmanes.caffeine.cache.Cache<ObjectSE, ObjectSE> cache) 指定された新しいネイティブ Caffeine キャッシュインスタンスを、指定されたキャッシュ名の Spring の Cache 抽象化に適合させます。 |
protected Cache | createCaffeineCache(StringSE name) このキャッシュマネージャーで指定された共通の Caffeine 構成を使用して、指定されたキャッシュ名の共通の CaffeineCache インスタンスを構築します。 |
protected com.github.benmanes.caffeine.cache.Cache<ObjectSE, ObjectSE> | createNativeCaffeineCache(StringSE name) このキャッシュマネージャーで指定された共通の Caffeine 構成を使用して、指定されたキャッシュ名の共通の Caffeine キャッシュインスタンスを構築します。 |
Cache | getCache(StringSE name) 指定された名前に関連付けられたキャッシュを取得します。 |
CollectionSE<StringSE> | getCacheNames() このマネージャーが知っているキャッシュ名のコレクションを取得します。 |
boolean | isAllowNullValues() このキャッシュマネージャーが、すべてのキャッシュの null 値を受け入れて変換するかどうかを返します。 |
void | registerCustomCache(StringSE name, com.github.benmanes.caffeine.cache.Cache<ObjectSE, ObjectSE> cache) 指定されたネイティブ Caffeine キャッシュインスタンスをこのキャッシュマネージャーに登録し、Spring のキャッシュ API に適応させて、 getCache(java.lang.String) を介して公開します。 |
void | setAllowNullValues(boolean allowNullValues) このキャッシュマネージャーのすべてのキャッシュの null 値を受け入れて変換するかどうかを指定します。 |
void | setCacheLoader(com.github.benmanes.caffeine.cache.CacheLoader<ObjectSE, ObjectSE> cacheLoader) Caffeine CacheLoader を設定して、個々の CaffeineCache インスタンスを作成し、LoadingCache に変換します。 |
void | setCacheNames(CollectionSE<StringSE> cacheNames) この CacheManager の「静的」モードのキャッシュ名のセットを指定します。 |
void | setCacheSpecification(StringSE cacheSpecification) 個々の CaffeineCache インスタンスを構築するために使用する Caffeine キャッシュ仕様文字列を設定します。 |
void | setCaffeine(com.github.benmanes.caffeine.cache.Caffeine<ObjectSE, ObjectSE> caffeine) Caffeine を設定して、個々の CaffeineCache インスタンスを作成します。 |
void | setCaffeineSpec(com.github.benmanes.caffeine.cache.CaffeineSpec caffeineSpec) 個々の CaffeineCache インスタンスの構築に使用する CaffeineSpec を設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public CaffeineCacheManager()
public CaffeineCacheManager(StringSE... cacheNames)
public void setCacheNames(@Nullable CollectionSE<StringSE> cacheNames)
キャッシュの数とその名前は、このメソッドの呼び出し後に修正され、実行時にさらにキャッシュ領域が作成されることはありません。
null
コレクション引数でこれを呼び出すと、モードが「動的」にリセットされ、キャッシュをさらに作成できるようになります。
public void setCaffeine(com.github.benmanes.caffeine.cache.Caffeine<ObjectSE,ObjectSE> caffeine)
CaffeineCache
インスタンスを作成します。createNativeCaffeineCache(java.lang.String)
, Caffeine.build()
public void setCaffeineSpec(com.github.benmanes.caffeine.cache.CaffeineSpec caffeineSpec)
CaffeineCache
インスタンスの構築に使用する CaffeineSpec
を設定します。createNativeCaffeineCache(java.lang.String)
, Caffeine.from(CaffeineSpec)
public void setCacheSpecification(StringSE cacheSpecification)
CaffeineCache
インスタンスを構築するために使用する Caffeine キャッシュ仕様文字列を設定します。指定された値は、Caffeine の CaffeineSpec
に準拠する必要があります(javadoc を参照)。createNativeCaffeineCache(java.lang.String)
, Caffeine.from(String)
public void setCacheLoader(com.github.benmanes.caffeine.cache.CacheLoader<ObjectSE,ObjectSE> cacheLoader)
CaffeineCache
インスタンスを作成し、LoadingCache に変換します。createNativeCaffeineCache(java.lang.String)
, Caffeine.build(CacheLoader)
, LoadingCache
public void setAllowNullValues(boolean allowNullValues)
null
値を受け入れて変換するかどうかを指定します。Caffeine 自体が null
値をサポートしていないにもかかわらず、デフォルトは "true" です。内部ホルダーオブジェクトは、ユーザーレベルの null
を格納するために使用されます。
public boolean isAllowNullValues()
null
値を受け入れて変換するかどうかを返します。public CollectionSE<StringSE> getCacheNames()
CacheManager
CacheManager
の getCacheNames
@Nullable public Cache getCache(StringSE name)
CacheManager
ネイティブプロバイダーがサポートしている場合、キャッシュは実行時に遅延して作成される場合があることに注意してください。
CacheManager
の getCache
name
- キャッシュ識別子 (null
であってはなりません)null
public void registerCustomCache(StringSE name, com.github.benmanes.caffeine.cache.Cache<ObjectSE,ObjectSE> cache)
getCache(java.lang.String)
を介して公開します。このようなカスタムキャッシュはいくつでも並べて登録できます。 これにより、キャッシュごとのカスタム設定が可能になり(キャッシュマネージャーの構成で共通設定を共有するすべてのキャッシュとは対照的)、通常は Caffeine ビルダー API である registerCustomCache("myCache", Caffeine.newBuilder().maximumSize(10).build())
で使用されます。
他のキャッシュは、setCacheNames(java.util.Collection<java.lang.String>)
で静的に指定されているか、オンデマンドで動的に作成されているかに関係なく、キャッシュマネージャーの構成の共通設定で動作します。
name
- キャッシュの名前 cache
- 登録するカスタム Caffeine キャッシュインスタンス adaptCaffeineCache(java.lang.String, com.github.benmanes.caffeine.cache.Cache<java.lang.Object, java.lang.Object>)
protected Cache adaptCaffeineCache(StringSE name, com.github.benmanes.caffeine.cache.Cache<ObjectSE,ObjectSE> cache)
Cache
抽象化に適合させます。name
- キャッシュの名前 cache
- ネイティブ Caffeine キャッシュインスタンス CaffeineCache
, isAllowNullValues()
protected Cache createCaffeineCache(StringSE name)
CaffeineCache
インスタンスを構築します。Spring のキャッシュ抽象化への適応方法として adaptCaffeineCache(java.lang.String, com.github.benmanes.caffeine.cache.Cache<java.lang.Object, java.lang.Object>)
にデリゲートし(一元化された装飾などを許可)、新しく構築されたネイティブ Caffeine キャッシュインスタンスを渡します。
name
- キャッシュの名前 adaptCaffeineCache(java.lang.String, com.github.benmanes.caffeine.cache.Cache<java.lang.Object, java.lang.Object>)
, createNativeCaffeineCache(java.lang.String)
protected com.github.benmanes.caffeine.cache.Cache<ObjectSE,ObjectSE> createNativeCaffeineCache(StringSE name)
name
- キャッシュの名前 createCaffeineCache(java.lang.String)