クラス 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 void
customizeContext
(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) Bean 定義がコンテキストになく、文脈をリフレッシュされる前にロードされた後、このContextLoader
によって作成されたConfigurableApplicationContext
をカスタマイズします。protected StringSE[]
generateDefaultLocations
(ClassSE<?> clazz) 指定されたクラスに基づいて、デフォルトのクラスパスリソースの場所の配列を生成します。protected abstract StringSE
デフォルトの場所を検出するときにApplicationContext
リソースの場所に追加するサフィックスを取得します。protected StringSE[]
デフォルトの場所を検出するときにApplicationContext
リソースの場所に追加するサフィックスを取得します。protected boolean
processLocations(Class, String...)
に提供されるlocations
がnull
であるか空である場合に、デフォルトのリソースの場所を生成する必要があるかどうかを判別します。protected StringSE[]
modifyLocations
(ClassSE<?> clazz, StringSE... locations) 指定された場所の配列の変更されたバージョンを生成し、それを返します。protected void
prepareContext
(ConfigurableApplicationContext context, MergedContextConfiguration mergedConfig) Bean 定義が読み取られる前に、このSmartContextLoader
によって作成されたConfigurableApplicationContext
を準備します。void
processContextConfiguration
(ContextConfigurationAttributes configAttributes) デフォルトの実装では、declaring class
をテストクラスとして使用し、提供されたconfiguration attributes
から取得したresource locations
を処理する場所として使用して、processLocations(Class, String...)
に類似した場所を処理します。final StringSE[]
processLocations
(ClassSE<?> clazz, StringSE... locations) 指定されたlocations
がnull
または空で、isGenerateDefaultLocations()
がtrue
を返す場合、指定されたclass
SE および構成されたリソースサフィックスのデフォルトの場所は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
を返す場合、指定されたclass
SE および構成されたリソースサフィックスのデフォルトの場所はgenerated
(つまり、検出)です。それ以外の場合、提供されたlocations
は必要に応じて変更されて返されます。- 次で指定:
- インターフェース
ContextLoader
のprocessLocations
- 次で指定:
- インターフェース
SmartContextLoader
のprocessLocations
- パラメーター:
clazz
- ロケーションが関連付けられているクラス: デフォルトのロケーションを生成するときに使用されますlocations
- アプリケーションコンテキストのロードに使用する未変更の場所 (null
または空にすることができます)- 戻り値:
- アプリケーションコンテキストリソースの場所の処理済み配列
- 導入:
- 2.5
- 関連事項:
generateDefaultLocations
指定されたクラスに基づいて、デフォルトのクラスパスリソースの場所の配列を生成します。例: 提供されたクラスが
com.example.MyTest
の場合、生成された場所には値"classpath:com/example/MyTest<suffix>"
の単一の文字列が含まれます。<suffix>
は、生成された場所が実際にクラスパスに存在する最初の構成済みリソースサフィックスの値です。このメソッドの実装は、
SmartContextLoader
SPI で定義された規約に従います。具体的には、このメソッドは、生成されたデフォルトの場所が実際に存在することを事前に検証します。存在しない場合、このメソッドは警告をログに記録し、空の配列を返します。サブクラスはこのメソッドをオーバーライドして、異なるデフォルトの場所生成戦略を実装できます。
- パラメーター:
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
- 関連事項: