アノテーションインターフェース CachePut


メソッド(またはクラスのすべてのメソッド)が cache put 操作をトリガーすることを示すアノテーション。

@Cacheable アノテーションとは対照的に、このアノテーションによって推奨されるメソッドがスキップされることはありません。むしろ、condition() 式と unless() 式がそれに応じて一致する場合、常にメソッドが呼び出され、その結果が関連するキャッシュに格納されます。Java8 の Optional 戻り値の型は自動的に処理され、その内容が存在する場合はキャッシュに格納されることに注意してください。

このアノテーションをメタアノテーションとして使用して、属性をオーバーライドしたカスタム合成アノテーションを作成できます。

導入:
3.1
作成者:
Costin Leau, Phillip Webb, Stephane Nicoll, Sam Brannen
関連事項:
  • 要素の詳細

    • value

      @AliasFor("cacheNames") StringSE[] value
      cacheNames() のエイリアス。
      デフォルト:
      {}
    • cacheNames

      @AliasFor("value") StringSE[] cacheNames
      キャッシュ書き込み操作に使用するキャッシュの名前。

      名前を使用して、特定の Bean 定義の修飾子の値または Bean 名に一致するターゲットキャッシュ(1 つまたは複数)を決定できます。

      導入:
      4.2
      関連事項:
      デフォルト:
      {}
    • key

      キーを動的に計算するための Spring Expression Language(SpEL)式。

      デフォルトは "" です。つまり、カスタム keyGenerator() が設定されていない限り、すべてのメソッドパラメーターがキーと見なされます。

      SpEL 式は、次のメタデータを提供する専用のコンテキストに対して評価します。

      • メソッド呼び出しの結果への参照については、#resultOptional などのサポートされているラッパーの場合、#result はラッパーではなく実際のオブジェクトを参照します
      • それぞれ methodSE、ターゲットオブジェクト、影響を受けるキャッシュへの参照用の #root.method#root.target#root.caches
      • メソッド名(#root.methodName)およびターゲットクラス(#root.targetClass)のショートカットも利用できます。
      • メソッドの引数はインデックスでアクセスできます。たとえば、2 番目の引数は #root.args[1]#p1#a1 を介してアクセスできます。その情報が利用可能な場合、引数は名前でアクセスすることもできます。
      デフォルト:
      ""
    • keyGenerator

      StringSE keyGenerator
      使用するカスタム KeyGenerator の Bean 名。

      key() 属性と相互に排他的です。

      関連事項:
      デフォルト:
      ""
    • cacheManager

      StringSE cacheManager
      デフォルト CacheResolver がまだ設定されていない場合に作成するために使用するカスタム CacheManager の Bean 名。

      cacheResolver() 属性と相互に排他的です。

      関連事項:
      デフォルト:
      ""
    • cacheResolver

      StringSE cacheResolver
      使用するカスタム CacheResolver の Bean 名。
      関連事項:
      デフォルト:
      ""
    • condition

      StringSE condition
      Spring キャッシュ書き込み操作を条件付きにするために使用される式言語 (SpEL) 式。条件が true と評価された場合、キャッシュを更新します。

      この式は、プット操作の性質上、メソッドが呼び出された後に評価されるため、result を参照できます。

      デフォルトは "" です。つまり、メソッドの結果は常にキャッシュされます。

      SpEL 式は、次のメタデータを提供する専用のコンテキストに対して評価します。

      • メソッド呼び出しの結果への参照については、#resultOptional などのサポートされているラッパーの場合、#result はラッパーではなく実際のオブジェクトを参照します
      • それぞれ methodSE、ターゲットオブジェクト、影響を受けるキャッシュへの参照用の #root.method#root.target#root.caches
      • メソッド名(#root.methodName)およびターゲットクラス(#root.targetClass)のショートカットも利用できます。
      • メソッドの引数はインデックスでアクセスできます。たとえば、2 番目の引数は #root.args[1]#p1#a1 を介してアクセスできます。その情報が利用可能な場合、引数は名前でアクセスすることもできます。
      デフォルト:
      ""
    • unless

      StringSE unless
      キャッシュの書き込み操作を拒否するために使用される Spring 式言語 (SpEL) 式。条件が true と評価された場合、キャッシュの更新を拒否します。

      デフォルトは "" です。つまり、キャッシュが拒否されることはありません。

      SpEL 式は、次のメタデータを提供する専用のコンテキストに対して評価します。

      • メソッド呼び出しの結果への参照については、#resultOptional などのサポートされているラッパーの場合、#result はラッパーではなく実際のオブジェクトを参照します
      • それぞれ methodSE、ターゲットオブジェクト、影響を受けるキャッシュへの参照用の #root.method#root.target#root.caches
      • メソッド名(#root.methodName)およびターゲットクラス(#root.targetClass)のショートカットも利用できます。
      • メソッドの引数はインデックスでアクセスできます。たとえば、2 番目の引数は #root.args[1]#p1#a1 を介してアクセスできます。その情報が利用可能な場合、引数は名前でアクセスすることもできます。
      導入:
      3.2
      デフォルト:
      ""