インターフェース CacheAwareContextLoaderDelegate

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

public interface CacheAwareContextLoaderDelegate
CacheAwareContextLoaderDelegate は、アプリケーションコンテキストのロードクローズを担当し、バックグラウンドで ContextCache と透過的に対話します。

Spring Framework 7.0 以降、この SPI にはコンテキストの使用の登録登録解除のオプションのサポートが含まれています。

メモ: CacheAwareContextLoaderDelegate は、ContextLoader または SmartContextLoader インターフェースを継承しません。

導入:
3.2.2
作成者:
Sam Brannen
  • フィールドの詳細

    • DEFAULT_CONTEXT_FAILURE_THRESHOLD

      static final int DEFAULT_CONTEXT_FAILURE_THRESHOLD
      アプリケーションコンテキストのロード試行中に発生したエラーのデフォルトの失敗しきい値: 1。
      導入:
      6.1
      関連事項:
    • CONTEXT_FAILURE_THRESHOLD_PROPERTY_NAME

      static final StringSE CONTEXT_FAILURE_THRESHOLD_PROPERTY_NAME
      アプリケーションコンテキストのロード中に発生したエラーの失敗しきい値を構成するために使用されるシステムプロパティ: "spring.test.context.failure.threshold"。

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

      CacheAwareContextLoaderDelegate の実装は、この機能をサポートする必要はありません。詳細については、対応する実装のドキュメントを参照してください。ただし、Spring の標準 CacheAwareContextLoaderDelegate 実装はこの機能をサポートしていることに注意してください。

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

    • isContextLoaded

      default boolean isContextLoaded(MergedContextConfiguration mergedConfig)
      提供された MergedContextConfigurationアプリケーションコンテキストがロードされている(つまり、ContextCache に存在する)かどうかを判別します。

      このメソッドの実装は、副作用としてアプリケーションコンテキストをロードしてはなりません。さらに、このメソッドの実装は ContextCache.logStatistics() を介してキャッシュ統計を記録するべきではありません。

      このメソッドのデフォルト実装は、常に false を返します。カスタム CacheAwareContextLoaderDelegate 実装では、このメソッドをより意味のある実装でオーバーライドすることを強くお勧めします。Spring の標準 CacheAwareContextLoaderDelegate 実装がこのメソッドを適切にオーバーライドすることに注意してください。

      パラメーター:
      mergedConfig - アプリケーションコンテキストのロードに使用されるマージされたコンテキスト構成。非 null
      戻り値:
      true (アプリケーションコンテキストがロードされている場合)
      導入:
      5.2
      関連事項:
    • loadContext

      指定された MergedContextConfiguration で構成された ContextLoader に委譲することにより、提供された MergedContextConfigurationアプリケーションコンテキストをロードします。

      ContextCache にコンテキストが存在する場合は、単に返されます。それ以外の場合は、ロードされてキャッシュに保存され、返されます。

      Spring Framework 6.0 の時点で、このメソッドの実装は SpringFactoriesLoader メカニズムを介して ApplicationContextFailureProcessor 実装をロードし、ContextLoader によってスローされた例外をキャッチし、例外が ContextLoadException のインスタンスである場合、コンテキストのロードの失敗を処理するために構成された各失敗プロセッサーに委譲する必要があります。

      Spring Framework 6.1 以降、このメソッドの実装では障害しきい値機能をサポートすることが推奨されています。具体的には、アプリケーションコンテキストのロードが繰り返し試行され、そのアプリケーションコンテキストのロードが常に失敗する場合 (たとえば、コンテキストの正常なロードを妨げる構成エラーが原因)、構成された失敗しきい値が以下の場合、このメソッドはプリエンプティブに IllegalStateExceptionSE をスローする必要があります。超えてしまった。ContextCache は、特定のコンテキストキャッシュキーの失敗カウントの追跡と増分をサポートしていることに注意してください。

      キャッシュ統計は、ContextCache.logStatistics() を呼び出して記録する必要があります。

      パラメーター:
      mergedConfig - アプリケーションコンテキストのロードに使用するマージされたコンテキスト構成。非 null
      戻り値:
      アプリケーションコンテキスト (非 null)
      例外:
      IllegalStateExceptionSE - アプリケーションコンテキストの取得中または読み込み中にエラーが発生した場合
      関連事項:
    • closeContext

      void closeContext(MergedContextConfiguration mergedConfig, @Nullable DirtiesContext.HierarchyMode hierarchyMode)
      提供された MergedContextConfigurationアプリケーションコンテキストを ContextCache から削除し、それが ConfigurableApplicationContext のインスタンスである場合は閉じます

      コンテキストをキャッシュから削除するときは、提供された HierarchyMode のセマンティクスを順守する必要があります。詳細については、DirtiesContext.HierarchyMode の Javadoc を参照してください。

      一般的に、このメソッドはシングルトン Bean の状態が変更された場合(コンテキストとの将来の対話に影響する可能性がある場合)、またはコンテキストをキャッシュから時期尚早に削除する必要がある場合にのみ呼び出す必要があります。

      パラメーター:
      mergedConfig - クローズするアプリケーションコンテキストのマージされたコンテキスト構成。非 null
      hierarchyMode - 階層モード。コンテキストが階層の一部ではない場合、null である可能性があります
      導入:
      4.1
      関連事項:
    • registerContextUsage

      default void registerContextUsage(MergedContextConfiguration key, ClassSE<?> testClass)
      指定された MergedContextConfigurationアプリケーションコンテキストの使用と、そののアプリケーションコンテキストの使用を再帰的に登録します。

      これは、提供されたテストクラスに代わって TestExecutionListener がアプリケーションコンテキストと対話するたびに呼び出されることを目的としています。

      パラメーター:
      key - コンテキストキー。null
      testClass - アプリケーションコンテキストを使用しているテストクラス
      導入:
      7.0
      関連事項:
    • unregisterContextUsage

      default void unregisterContextUsage(MergedContextConfiguration key, ClassSE<?> testClass)
      指定された MergedContextConfigurationアプリケーションコンテキストの使用と、そののアプリケーションコンテキストの使用を再帰的に登録解除します。

      これは、他のテストクラスが同じアプリケーションコンテキストをアクティブに使用していない場合、アプリケーションコンテキストを安全に一時停止できることを ContextCache に通知します。

      パラメーター:
      key - コンテキストキー。null
      testClass - アプリケーションコンテキストを使用しなくなったテストクラス
      導入:
      7.0
      関連事項: