@TargetSE(valueSE={TYPESE,METHODSE}) @RetentionSE(valueSE=RUNTIMESE) @InheritedSE @DocumentedSE public @interface CacheEvict
cache evict
操作をトリガーすることを示すアノテーション。このアノテーションをメタアノテーションとして使用して、属性をオーバーライドしたカスタム合成アノテーションを作成できます。
CacheConfig
修飾子と型 | オプションの要素と説明 |
---|---|
boolean | allEntries キャッシュ内のすべてのエントリが削除されるかどうか。 |
boolean | beforeInvocation メソッドが呼び出される前にエビクションが発生するかどうか。 |
StringSE | cacheManager デフォルト CacheResolver がまだ設定されていない場合に作成するために使用するカスタム CacheManager の Bean 名。 |
StringSE[] | cacheNames キャッシュの排除操作に使用するキャッシュの名前。 |
StringSE | cacheResolver 使用するカスタム CacheResolver の Bean 名。 |
StringSE | condition キャッシュエビクション操作を条件付きにするために使用される Spring 式言語(SpEL)式。 |
StringSE | key キーを動的に計算するための Spring Expression Language(SpEL)式。 |
StringSE | keyGenerator 使用するカスタム KeyGenerator の Bean 名。 |
StringSE[] | value cacheNames() のエイリアス。 |
@AliasFor(value="cacheNames") public abstract StringSE[] value
cacheNames()
のエイリアス。@AliasFor(value="value") public abstract StringSE[] cacheNames
名前を使用して、特定の Bean 定義の修飾子の値または Bean 名に一致するターゲットキャッシュ(1 つまたは複数)を決定できます。
value()
, CacheConfig.cacheNames()
public abstract StringSE key
デフォルトは ""
です。つまり、カスタム keyGenerator()
が設定されていない限り、すべてのメソッドパラメーターがキーと見なされます。
SpEL 式は、次のメタデータを提供する専用のコンテキストに対して評価します。
#result
は、メソッド呼び出しの結果への参照です。これは、beforeInvocation()
が false
の場合にのみ使用できます。Optional
などのサポートされているラッパーの場合、#result
はラッパーではなく実際のオブジェクトを参照します method
SE、ターゲットオブジェクト、影響を受けるキャッシュへの参照用の #root.method
、#root.target
、#root.caches
。#root.methodName
)およびターゲットクラス(#root.targetClass
)のショートカットも利用できます。#root.args[1]
、#p1
、#a1
を介してアクセスできます。その情報が利用可能な場合、引数は名前でアクセスすることもできます。public abstract StringSE keyGenerator
KeyGenerator
の Bean 名。key()
属性と相互に排他的です。
public abstract StringSE cacheManager
CacheResolver
がまだ設定されていない場合に作成するために使用するカスタム CacheManager
の Bean 名。cacheResolver()
属性と相互に排他的です。
public abstract StringSE cacheResolver
CacheResolver
の Bean 名。public abstract StringSE condition
true
と評価された場合、そのキャッシュを削除します。 デフォルトは ""
です。つまり、キャッシュの追い出しは常に実行されます。
SpEL 式は、次のメタデータを提供する専用のコンテキストに対して評価します。
method
SE、ターゲットオブジェクト、影響を受けるキャッシュへの参照用の #root.method
、#root.target
、#root.caches
。#root.methodName
)およびターゲットクラス(#root.targetClass
)のショートカットも利用できます。#root.args[1]
、#p1
、#a1
を介してアクセスできます。その情報が利用可能な場合、引数は名前でアクセスすることもできます。public abstract boolean allEntries
デフォルトでは、関連付けられたキーの値のみが削除されます。
このパラメーターを true
に設定し、key()
を指定することはできないことに注意してください。