インターフェース ContextCache

すべての既知の実装クラス:
DefaultContextCache

public interface ContextCache
ContextCache は、Spring TestContext フレームワーク内で Spring ApplicationContexts をキャッシュするための SPI を定義します。

ContextCache は、MergedContextConfiguration インスタンスによってキー設定された ApplicationContexts のキャッシュを維持し、最大サイズとカスタムエビクションポリシーで構成されている可能性があります。

Spring Framework 6.1 以降、この SPI には、障害数の追跡増分のためのオプションのサポートが含まれています。

根拠

コンテキストの初期化が複雑な場合、コンテキストキャッシングはパフォーマンスに大きなメリットをもたらす可能性があります。Spring コンテキスト自体の初期化は通常非常に高速ですが、コンテキスト内の一部の Bean- たとえば、JPA を操作するための組み込みデータベースまたは LocalContainerEntityManagerFactoryBean - 初期化には数秒かかる場合があります。多くの場合、テストスイートまたは JVM プロセスごとに 1 回だけその初期化を実行することが理にかなっています。

導入:
4.2
作成者:
Sam Brannen, Juergen Hoeller
関連事項:
  • フィールドの詳細

    • CONTEXT_CACHE_LOGGING_CATEGORY

      static final StringSE CONTEXT_CACHE_LOGGING_CATEGORY
      ContextCache 統計のレポートに使用されるロギングカテゴリの名前。
      関連事項:
    • DEFAULT_MAX_CONTEXT_CACHE_SIZE

      static final int DEFAULT_MAX_CONTEXT_CACHE_SIZE
      コンテキストキャッシュのデフォルトの最大サイズ: 32。
      導入:
      4.3
      関連事項:
    • MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME

      static final StringSE MAX_CONTEXT_CACHE_SIZE_PROPERTY_NAME
      ContextCache の最大サイズを正の整数として構成するために使用されるシステムプロパティ: "spring.test.context.cache.maxSize"。

      あるいは、SpringProperties メカニズムを介して構成することもできます。

      ContextCache の実装は、最大キャッシュサイズを実際にサポートする必要はないことに注意してください。詳細については、対応する実装のドキュメントを参照してください。

      導入:
      4.3
      関連事項:
  • メソッドの詳細

    • contains

      boolean contains(MergedContextConfiguration key)
      指定されたキーのキャッシュされたコンテキストがあるかどうかを確認します。
      パラメーター:
      key - コンテキストキー (非 null)
      戻り値:
      true (キャッシュに指定されたキーのコンテキストが含まれている場合)
    • get

      指定されたキーのキャッシュされた ApplicationContext を取得します。

      ヒット数とミス数はそれに応じて更新する必要があります。

      パラメーター:
      key - コンテキストキー (非 null)
      戻り値:
      対応する ApplicationContext インスタンス、またはキャッシュに見つからない場合は null 
      関連事項:
    • put

      特定のキーにある ApplicationContext インスタンスをキャッシュに明示的に追加します。これにより、カスタムの排除ポリシーが適用される可能性があります。
      パラメーター:
      key - コンテキストキー (非 null)
      context - ApplicationContext インスタンス (非 null)
    • remove

      指定されたキーを持つコンテキストをキャッシュから削除し、ConfigurableApplicationContext のインスタンスである場合は明示的に閉じます。

      一般的に、このメソッドは、キャッシュからコンテキストを適切に削除するために(たとえば、カスタムエビクションポリシーが原因で)、シングルトン Bean の状態が変更され、コンテキストとの今後の相互作用に影響を与える可能性がある場合に呼び出す必要があります。

      さらに、提供された HierarchyMode のセマンティクスを尊重する必要があります。詳細については、DirtiesContext.HierarchyMode の Javadoc を参照してください。

      パラメーター:
      key - コンテキストキー。null
      hierarchyMode - 階層モード。コンテキストが階層の一部ではない場合、null である可能性があります
    • getFailureCount

      default int getFailureCount(MergedContextConfiguration key)
      指定されたキーの失敗回数を取得します。

      失敗とは、指定されたキーの ApplicationContext をロードしようとして例外が発生することです。

      このメソッドのデフォルト実装は常に 0 を返します。具体的な実装では、このメソッドと incrementFailureCount(MergedContextConfiguration) を適切な動作でオーバーライドすることを強くお勧めします。Spring の標準 ContextContext 実装は、これらのメソッドを適切にオーバーライドすることに注意してください。

      パラメーター:
      key - コンテキストキー。null
      導入:
      6.1
      関連事項:
    • incrementFailureCount

      default void incrementFailureCount(MergedContextConfiguration key)
      指定されたキーの失敗回数を増やします。

      このメソッドのデフォルトの実装では何も行われません。具体的な実装では、このメソッドと getFailureCount(MergedContextConfiguration) を適切な動作でオーバーライドすることを強くお勧めします。Spring の標準 ContextContext 実装は、これらのメソッドを適切にオーバーライドすることに注意してください。

      パラメーター:
      key - コンテキストキー。null
      導入:
      6.1
      関連事項:
    • size

      int size()
      現在キャッシュに格納されているコンテキストの数を確認します。

      キャッシュに Integer.MAX_VALUE 要素より多く含まれている場合、このメソッドは Integer.MAX_VALUE を返す必要があります。

    • getParentContextCount

      int getParentContextCount()
      キャッシュ内で現在追跡されている親コンテキストの数を判別します。
    • getHitCount

      int getHitCount()
      このキャッシュの全体的なヒット数を取得します。

      ヒットとは、クエリされたキーに対して null 以外のコンテキストを返すキャッシュへのアクセスです。

    • getMissCount

      int getMissCount()
      このキャッシュの全体的なミス数を取得します。

      ミスとは、クエリされたキーの null コンテキストを返すキャッシュへのアクセスです。

    • reset

      void reset()
      統計を含め、このキャッシュによって維持されているすべての状態をリセットします。
      関連事項:
    • clear

      void clear()
      キャッシュからすべてのコンテキストをクリアし、コンテキスト階層情報もクリアします。
    • clearStatistics

      void clearStatistics()
      キャッシュのヒットカウントミスカウントの統計をクリアします(つまり、カウンターをゼロにリセットします)。
    • logStatistics

      void logStatistics()
      "org.springframework.test.context.cache" ロギングカテゴリを使用して、この ContextCache の統計を DEBUG レベルで記録します。

      次の情報がログに記録されます。