クラス AbstractContextLoader

java.lang.ObjectSE
org.springframework.test.context.support.AbstractContextLoader
実装されているすべてのインターフェース:
ContextLoader, SmartContextLoader
既知の直属サブクラス
AbstractGenericContextLoader, AbstractGenericWebContextLoader

public abstract class AbstractContextLoader extends ObjectSE implements SmartContextLoader
ContextLoader SPI のすべての具体的な実装の基礎を提供する抽象アプリケーションコンテキストローダー。processing リソースの場所にテンプレートメソッドベースのアプローチを提供します。

AbstractContextLoader は、SmartContextLoader SPI のすべての具体的な実装の基礎も提供します。ContextLoader SPI との下位互換性のために、processContextConfiguration(ContextConfigurationAttributes)processLocations(Class, String...) に委譲されます。

導入:
2.5
作成者:
Sam Brannen, Juergen Hoeller, Phillip Webb
関連事項:
  • コンストラクターの詳細

    • AbstractContextLoader

      public AbstractContextLoader()
  • メソッドの詳細

    • processContextConfiguration

      public void processContextConfiguration(ContextConfigurationAttributes configAttributes)
      デフォルトの実装では、declaring class をテストクラスとして使用し、提供された configuration attributes から取得した resource locations を処理する場所として使用して、processLocations(Class, String...) に類似した場所を処理します。処理されたロケーションは、指定された構成属性の set です。

      サブクラスでオーバーライドできます。— たとえば、リソースの場所ではなく、アノテーション付きのクラスを処理します。

      次で指定:
      インターフェース SmartContextLoaderprocessContextConfiguration 
      パラメーター:
      configAttributes - 処理するコンテキスト構成属性
      導入:
      3.1
      関連事項:
    • prepareContext

      protected void prepareContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig)
      Bean 定義が読み取られる前に、この SmartContextLoader によって作成された ConfigurableApplicationContext を準備します。

      デフォルトの実装:

      • コンテキストの Environment の指定された MergedContextConfiguration からアクティブな Bean 定義プロファイルを設定します。
      • すべてのリソースの場所PropertySources と、指定された MergedContextConfiguration からコンテキストの Environment にインライン化されたプロパティを追加します。
      • MergedContextConfiguration を介して提供されたコンテキスト初期化クラス(存在する場合)を判別し、指定されたアプリケーションコンテキストでそれぞれインスタンス化して呼び出します。
        • Ordered を実装する、または @Order でアノテーションが付けられた ApplicationContextInitializers は、適切にソートされます。
      パラメーター:
      context - 新しく作成されたアプリケーションコンテキスト
      mergedConfig - マージされたコンテキスト構成
      導入:
      3.2
      関連事項:
    • customizeContext

      protected void customizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig)
      Bean 定義がコンテキストになく、文脈をリフレッシュされる前にロードされた、この ContextLoader によって作成された ConfigurableApplicationContext をカスタマイズします。

      デフォルトの実装は、提供された mergedConfig に登録されているすべての context customizers に委譲します。

      パラメーター:
      context - 新しく作成されたアプリケーションコンテキスト
      mergedConfig - マージされたコンテキスト構成
      導入:
      4.3
    • processLocations

      public final StringSE[] processLocations(ClassSE<?> clazz, StringSE... locations)
      指定された locations が null または空でisGenerateDefaultLocations() が true を返す場合、指定された classSE および構成されたリソースサフィックスのデフォルトの場所は generated(つまり、検出)です。それ以外の場合、提供された locations は必要に応じて変更されて返されます。
      次で指定:
      インターフェース ContextLoaderprocessLocations 
      次で指定:
      インターフェース SmartContextLoaderprocessLocations 
      パラメーター:
      clazz - ロケーションが関連付けられているクラス: デフォルトのロケーションを生成するときに使用されます
      locations - アプリケーションコンテキストのロードに使用する未変更の場所 (null または空にすることができます)
      戻り値:
      アプリケーションコンテキストリソースの場所の処理済み配列
      導入:
      2.5
      関連事項:
    • generateDefaultLocations

      protected StringSE[] generateDefaultLocations(ClassSE<?> clazz)
      指定されたクラスに基づいて、デフォルトのクラスパスリソースの場所の配列を生成します。

      例: 提供されたクラスが com.example.MyTest の場合、生成された場所には値 "classpath:com/example/MyTest<suffix>" の単一の文字列が含まれます。<suffix> は、生成された場所が実際にクラスパスに存在する最初の構成済みリソースサフィックスの値です。

      このメソッドの実装は、SmartContextLoader SPI で定義された規約に従います。具体的には、このメソッドは、生成されたデフォルトの場所が実際に存在することを事前に検証します。存在しない場合、このメソッドは警告をログに記録し、空の配列を返します。

      サブクラスはこのメソッドをオーバーライドして、異なるデフォルトの場所生成戦略を実装できます。

      パラメーター:
      clazz - デフォルトの場所が生成されるクラス
      戻り値:
      デフォルトのアプリケーションコンテキストリソースの場所の配列
      導入:
      2.5
      関連事項:
    • modifyLocations

      protected StringSE[] modifyLocations(ClassSE<?> clazz, StringSE... locations)
      指定された場所の配列の変更されたバージョンを生成し、それを返します。

      デフォルトの実装は、単に TestContextResourceUtils.convertToClasspathResourcePaths(Class, String...) に委譲するだけです。

      サブクラスはこのメソッドをオーバーライドして、別の場所変更戦略を実装できます。

      パラメーター:
      clazz - 場所が関連付けられているクラス
      locations - 変更するリソースの場所
      戻り値:
      変更されたアプリケーションコンテキストリソースの場所の配列
      導入:
      2.5
    • isGenerateDefaultLocations

      protected boolean isGenerateDefaultLocations()
      processLocations(Class, String...) に提供される locations が null であるか空である場合に、デフォルトのリソースの場所を生成する必要があるかどうかを判別します。

      このメソッドのセマンティクスは、デフォルトのリソースの場所またはデフォルトの構成クラスの検出を含むようにオーバーロードされています。このメソッドを使用して、processContextConfiguration(ContextConfigurationAttributes) に提供された構成属性に存在する classes が null または空の場合に、デフォルトの構成クラスを検出する必要があるかどうかを判別することもできます。

      デフォルトの動作を変更するためにサブクラスでオーバーライドできます。

      戻り値:
      デフォルトでは常に true 
      導入:
      2.5
    • getResourceSuffixes

      protected StringSE[] getResourceSuffixes()
      デフォルトの場所を検出するときに ApplicationContext リソースの場所に追加するサフィックスを取得します。

      デフォルトの実装では、getResourceSuffix() から返された値を単一要素の配列にラップするだけですが、複数のサフィックスをサポートするために、サブクラスによってオーバーライドできます。

      戻り値:
      リソースのサフィックス。null または空にしない
      導入:
      4.1
      関連事項:
    • getResourceSuffix

      protected abstract StringSE getResourceSuffix()
      デフォルトの場所を検出するときに ApplicationContext リソースの場所に追加するサフィックスを取得します。

      サブクラスは、単一のサフィックスを返すこのメソッドの実装を提供する必要があります。あるいは、複数のカスタムサフィックスを提供するために、サブクラスがこのメソッドの no-op 実装を提供し、getResourceSuffixes() をオーバーライドする場合があります。

      戻り値:
      リソースのサフィックス。null または空にしない
      導入:
      2.5
      関連事項: