クラス AbstractContextLoader
- 実装されているすべてのインターフェース:
ContextLoader,SmartContextLoader
ContextLoader SPI のすべての具体的な実装の基礎を提供する抽象アプリケーションコンテキストローダー。processing リソースの場所にテンプレートメソッドベースのアプローチを提供します。AbstractContextLoader は、SmartContextLoader SPI のすべての具体的な実装の基礎も提供します。ContextLoader SPI との下位互換性のために、processContextConfiguration(ContextConfigurationAttributes) は processLocations(Class, String...) に委譲されます。
- 導入:
- 2.5
- 作成者:
- Sam Brannen, Juergen Hoeller, Phillip Webb
- 関連事項:
generateDefaultLocations(java.lang.Class<?>)getResourceSuffixes()modifyLocations(java.lang.Class<?>, java.lang.String...)prepareContext(org.springframework.context.ConfigurableApplicationContext, org.springframework.test.context.MergedContextConfiguration)customizeContext(org.springframework.context.ConfigurableApplicationContext, org.springframework.test.context.MergedContextConfiguration)
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected voidcustomizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) Bean 定義がコンテキストになく、文脈をリフレッシュされる前にロードされた後、このContextLoaderによって作成されたConfigurableApplicationContextをカスタマイズします。protected StringSE[]generateDefaultLocations(ClassSE<?> clazz) 指定されたクラスに基づいて、デフォルトのクラスパスリソースの場所の配列を生成します。protected abstract StringSEデフォルトの場所を検出するときにApplicationContextリソースの場所に追加するサフィックスを取得します。protected StringSE[]デフォルトの場所を検出するときにApplicationContextリソースの場所に追加するサフィックスを取得します。protected booleanprocessLocations(Class, String...)に提供されるlocationsがnullであるか空である場合に、デフォルトのリソースの場所を生成する必要があるかどうかを判別します。protected StringSE[]modifyLocations(ClassSE<?> clazz, StringSE... locations) 指定された場所の配列の変更されたバージョンを生成し、それを返します。protected voidprepareContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) Bean 定義が読み取られる前に、このSmartContextLoaderによって作成されたConfigurableApplicationContextを準備します。voidprocessContextConfiguration(ContextConfigurationAttributes configAttributes) デフォルトの実装では、declaring classをテストクラスとして使用し、提供されたconfiguration attributesから取得したresource locationsを処理する場所として使用して、processLocations(Class, String...)に類似した場所を処理します。final StringSE[]processLocations(ClassSE<?> clazz, StringSE... locations) 指定されたlocationsがnullまたは空で、isGenerateDefaultLocations()がtrueを返す場合、指定されたclassSE および構成されたリソースサフィックスのデフォルトの場所はgenerated(つまり、検出)です。それ以外の場合、提供されたlocationsは必要に応じて変更されて返されます。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.test.context.SmartContextLoader から継承されたメソッド
loadContext, loadContext
コンストラクターの詳細
AbstractContextLoader
public AbstractContextLoader()
メソッドの詳細
processContextConfiguration
デフォルトの実装では、declaring classをテストクラスとして使用し、提供されたconfiguration attributesから取得したresource locationsを処理する場所として使用して、processLocations(Class, String...)に類似した場所を処理します。処理されたロケーションは、指定された構成属性のsetです。サブクラスでオーバーライドできます。— たとえば、リソースの場所ではなく、アノテーション付きのクラスを処理します。
- 次で指定:
- インターフェース
SmartContextLoaderのprocessContextConfiguration - パラメーター:
configAttributes- 処理するコンテキスト構成属性- 導入:
- 3.1
- 関連事項:
prepareContext
protected void prepareContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) Bean 定義が読み取られる前に、このSmartContextLoaderによって作成されたConfigurableApplicationContextを準備します。デフォルトの実装:
- コンテキストの
Environmentの指定されたMergedContextConfigurationからアクティブな Bean 定義プロファイルを設定します。 - すべてのリソースの場所の
PropertySourcesと、指定されたMergedContextConfigurationからコンテキストのEnvironmentにインライン化されたプロパティを追加します。 MergedContextConfigurationを介して提供されたコンテキスト初期化クラス(存在する場合)を判別し、指定されたアプリケーションコンテキストでそれぞれインスタンス化して呼び出します。
- パラメーター:
context- 新しく作成されたアプリケーションコンテキストmergedConfig- マージされたコンテキスト構成- 導入:
- 3.2
- 関連事項:
TestPropertySourceUtils.addPropertySourcesToEnvironment(ConfigurableApplicationContext, List)TestPropertySourceUtils.addInlinedPropertiesToEnvironment(ConfigurableApplicationContext, String...)ApplicationContextInitializer.initialize(ConfigurableApplicationContext)SmartContextLoader.loadContext(MergedContextConfiguration)ConfigurableApplicationContext.setId(java.lang.String)
- コンテキストの
customizeContext
protected void customizeContext(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) Bean 定義がコンテキストになく、文脈をリフレッシュされる前にロードされた後、このContextLoaderによって作成されたConfigurableApplicationContextをカスタマイズします。デフォルトの実装は、提供された
mergedConfigに登録されているすべてのcontext customizersに委譲します。- パラメーター:
context- 新しく作成されたアプリケーションコンテキストmergedConfig- マージされたコンテキスト構成- 導入:
- 4.3
processLocations
指定されたlocationsがnullまたは空で、isGenerateDefaultLocations()がtrueを返す場合、指定されたclassSE および構成されたリソースサフィックスのデフォルトの場所はgenerated(つまり、検出)です。それ以外の場合、提供されたlocationsは必要に応じて変更されて返されます。- 次で指定:
- インターフェース
ContextLoaderのprocessLocations - 次で指定:
- インターフェース
SmartContextLoaderのprocessLocations - パラメーター:
clazz- ロケーションが関連付けられているクラス: デフォルトのロケーションを生成するときに使用されますlocations- アプリケーションコンテキストのロードに使用する未変更の場所 (nullまたは空にすることができます)- 戻り値:
- アプリケーションコンテキストリソースの場所の処理済み配列
- 導入:
- 2.5
- 関連事項:
generateDefaultLocations
指定されたクラスに基づいて、デフォルトのクラスパスリソースの場所の配列を生成します。例: 提供されたクラスが
com.example.MyTestの場合、生成された場所には値"classpath:com/example/MyTest<suffix>"の単一の文字列が含まれます。<suffix>は、生成された場所が実際にクラスパスに存在する最初の構成済みリソースサフィックスの値です。このメソッドの実装は、
SmartContextLoaderSPI で定義された規約に従います。具体的には、このメソッドは、生成されたデフォルトの場所が実際に存在することを事前に検証します。存在しない場合、このメソッドは警告をログに記録し、空の配列を返します。サブクラスはこのメソッドをオーバーライドして、異なるデフォルトの場所生成戦略を実装できます。
- パラメーター:
clazz- デフォルトの場所が生成されるクラス- 戻り値:
- デフォルトのアプリケーションコンテキストリソースの場所の配列
- 導入:
- 2.5
- 関連事項:
modifyLocations
指定された場所の配列の変更されたバージョンを生成し、それを返します。デフォルトの実装は、単に
TestContextResourceUtils.convertToClasspathResourcePaths(java.lang.Class<?>, java.lang.String...)に委譲するだけです。サブクラスはこのメソッドをオーバーライドして、別の場所変更戦略を実装できます。
- パラメーター:
clazz- 場所が関連付けられているクラスlocations- 変更するリソースの場所- 戻り値:
- 変更されたアプリケーションコンテキストリソースの場所の配列
- 導入:
- 2.5
isGenerateDefaultLocations
protected boolean isGenerateDefaultLocations()processLocations(Class, String...)に提供されるlocationsがnullであるか空である場合に、デフォルトのリソースの場所を生成する必要があるかどうかを判別します。このメソッドのセマンティクスは、デフォルトのリソースの場所またはデフォルトの構成クラスの検出を含むようにオーバーロードされています。このメソッドを使用して、
processContextConfiguration(ContextConfigurationAttributes)に提供された構成属性に存在するclassesがnullまたは空の場合に、デフォルトの構成クラスを検出する必要があるかどうかを判別することもできます。デフォルトの動作を変更するためにサブクラスでオーバーライドできます。
- 戻り値:
- デフォルトでは常に
true - 導入:
- 2.5
getResourceSuffixes
デフォルトの場所を検出するときにApplicationContextリソースの場所に追加するサフィックスを取得します。デフォルトの実装では、
getResourceSuffix()から返された値を単一要素の配列にラップするだけですが、複数のサフィックスをサポートするために、サブクラスによってオーバーライドできます。- 戻り値:
- リソースのサフィックス。
nullまたは空にしない - 導入:
- 4.1
- 関連事項:
getResourceSuffix
デフォルトの場所を検出するときにApplicationContextリソースの場所に追加するサフィックスを取得します。サブクラスは、単一のサフィックスを返すこのメソッドの実装を提供する必要があります。あるいは、複数のカスタムサフィックスを提供するために、サブクラスがこのメソッドの no-op 実装を提供し、
getResourceSuffixes()をオーバーライドする場合があります。- 戻り値:
- リソースのサフィックス。
nullまたは空にしない - 導入:
- 2.5
- 関連事項: