クラス AbstractGenericWebContextLoader
- 実装されているすべてのインターフェース:
AotContextLoader、ContextLoader、SmartContextLoader
GenericWebApplicationContext をロードする AbstractContextLoader の抽象、汎用拡張。 具象サブクラスのインスタンスは SmartContextLoader SPI を介して呼び出され、コンテキストは loadContext(MergedContextConfiguration) に提供される MergedContextConfiguration からロードされます。このような場合、SmartContextLoader は、場所からコンテキストをロードするか、アノテーション付きクラスからコンテキストをロードするかを決定します。 AbstractGenericWebContextLoader は、従来の ContextLoader SPI の loadContext(String... locations) メソッドをサポートしていないことに注意してください。
具象サブクラスは、loadBeanDefinitions(org.springframework.web.context.support.GenericWebApplicationContext, org.springframework.test.context.web.WebMergedContextConfiguration) の適切な実装を提供する必要があります。
- 導入:
- 3.2
- 作成者:
- Sam Brannen, Phillip Webb
- 関連事項:
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected voidconfigureWebResources(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) 提供された Web アプリケーションコンテキスト(WAC)の Web リソースを構成します。protected GenericWebApplicationContextこのContextLoaderで使用されるGenericWebApplicationContextを作成するためのファクトリメソッド。protected voidcustomizeBeanFactory(DefaultListableBeanFactory beanFactory, WebMergedContextConfiguration webMergedConfig) このコンテキストローダーによって作成されたWebApplicationContextの内部 Bean ファクトリをカスタマイズします。protected voidcustomizeContext(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) Bean 定義がコンテキストにロードされた後でコンテキストがリフレッシュされる前に、この文脈ローダーによって作成されたGenericWebApplicationContextをカスタマイズします。protected abstract voidloadBeanDefinitions(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) 提供されたWebMergedContextConfigurationの場所またはクラスから、提供されたcontextに Bean 定義をロードします。final ApplicationContextloadContext(StringSE... locations) final ApplicationContextloadContext(MergedContextConfiguration mergedConfig) 提供されたMergedContextConfigurationのGenericWebApplicationContextをロードします。loadContextForAotProcessing(MergedContextConfiguration mergedConfig) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。loadContextForAotProcessing(MergedContextConfiguration mergedConfig, RuntimeHints runtimeHints) 提供されたMergedContextConfigurationに基づいて、AOT ビルド時の処理のためにGenericWebApplicationContextをロードします。loadContextForAotRuntime(MergedContextConfiguration mergedConfig, ApplicationContextInitializer<ConfigurableApplicationContext> initializer) 提供されたMergedContextConfigurationおよびApplicationContextInitializerに基づいて、AOT ランタイム実行用にGenericWebApplicationContextをロードします。protected voidこのコンテキストローダーがサポートするものに関して、提供されたWebMergedContextConfigurationを検証します。クラス org.springframework.test.context.support.AbstractContextLoader から継承されたメソッド
customizeContext, generateDefaultLocations, getResourceSuffix, getResourceSuffixes, isGenerateDefaultLocations, modifyLocations, prepareContext, processContextConfiguration, processLocationsクラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.test.context.SmartContextLoader から継承されたメソッド
processContextConfiguration, processLocations
フィールドの詳細
logger
コンストラクターの詳細
AbstractGenericWebContextLoader
public AbstractGenericWebContextLoader()
メソッドの詳細
loadContext
public final ApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws ExceptionSE 提供されたMergedContextConfigurationのGenericWebApplicationContextをロードします。実装の詳細:
validateMergedContextConfiguration(WebMergedContextConfiguration)を呼び出して、サブクラスが続行する前に指定された構成を検証できるようにします。GenericWebApplicationContextインスタンスを作成します。- 指定された
MergedContextConfigurationが親構成を参照する場合、対応するApplicationContextが取得され、このメソッドによって作成されたコンテキストの親として設定されます。 MockServletContextを作成してWebApplicationContextに設定するには、configureWebResources(org.springframework.web.context.support.GenericWebApplicationContext, org.springframework.test.context.web.WebMergedContextConfiguration)に委譲します。AbstractContextLoader.prepareContext(org.springframework.context.ConfigurableApplicationContext, org.springframework.test.context.MergedContextConfiguration)を呼び出して、Bean 定義がロードされる前にコンテキストをカスタマイズできるようにします。customizeBeanFactory(org.springframework.beans.factory.support.DefaultListableBeanFactory, org.springframework.test.context.web.WebMergedContextConfiguration)を呼び出して、コンテキストのDefaultListableBeanFactoryをカスタマイズできるようにします。loadBeanDefinitions(org.springframework.web.context.support.GenericWebApplicationContext, org.springframework.test.context.web.WebMergedContextConfiguration)にデリゲートして、提供されたMergedContextConfiguration内の場所またはクラスからコンテキストを設定します。- アノテーション構成プロセッサーを登録するための
AnnotationConfigUtilsへのデリゲート。 customizeContext(org.springframework.web.context.support.GenericWebApplicationContext, org.springframework.test.context.web.WebMergedContextConfiguration)を呼び出して、リフレッシュされる前にコンテキストをカスタマイズできるようにします。Refreshesコンテキストとそのための JVM シャットダウンフックを登録します。
- 次で指定:
- インターフェース
SmartContextLoaderのloadContext - パラメーター:
mergedConfig- アプリケーションコンテキストをロードするために使用するマージされたコンテキスト構成- 戻り値:
- 新しい Web アプリケーションコンテキスト
- 例外:
ContextLoadException- コンテキストの読み込みに失敗した場合ExceptionSE- 関連事項:
loadContextForAotProcessing
@DeprecatedSE(since="6.2.4", forRemoval=true) public final GenericWebApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig) throws ExceptionSE 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。Spring Framework 6.2.4 時点ではloadContextForAotProcessing(MergedContextConfiguration, RuntimeHints)に置き換えられ、Spring Framework 8.0 で削除される予定提供されたMergedContextConfigurationに基づいて、AOT ビルド時の処理のためにGenericWebApplicationContextをロードします。loadContext(MergedContextConfiguration)とは対照的に、このメソッドはApplicationContextをリフレッシュしたり、JVM シャットダウンフックを登録したりしません。それ以外の場合、このメソッドはloadContext(MergedContextConfiguration)と同じ動作を実装します。- 次で指定:
- インターフェース
AotContextLoaderのloadContextForAotProcessing - パラメーター:
mergedConfig- アプリケーションコンテキストをロードするために使用するマージされたコンテキスト構成- 戻り値:
- 新しい Web アプリケーションコンテキスト
- 例外:
ExceptionSE- コンテキストの読み込みに失敗した場合- 導入:
- 6.0
- 関連事項:
loadContextForAotProcessing
public final GenericWebApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig, RuntimeHints runtimeHints) throws ExceptionSE 提供されたMergedContextConfigurationに基づいて、AOT ビルド時の処理のためにGenericWebApplicationContextをロードします。loadContext(MergedContextConfiguration)とは対照的に、このメソッドはApplicationContextをリフレッシュしたり、JVM シャットダウンフックを登録したりしません。それ以外の場合、このメソッドはloadContext(MergedContextConfiguration)と同じ動作を実装します。- 次で指定:
- インターフェース
AotContextLoaderのloadContextForAotProcessing - パラメーター:
mergedConfig- アプリケーションコンテキストをロードするために使用するマージされたコンテキスト構成runtimeHints- 実行時のヒント- 戻り値:
- 新しい Web アプリケーションコンテキスト
- 例外:
ExceptionSE- コンテキストの読み込みに失敗した場合- 導入:
- 6.2.4
- 関連事項:
loadContextForAotRuntime
public final GenericWebApplicationContext loadContextForAotRuntime(MergedContextConfiguration mergedConfig, ApplicationContextInitializer<ConfigurableApplicationContext> initializer) throws ExceptionSE 提供されたMergedContextConfigurationおよびApplicationContextInitializerに基づいて、AOT ランタイム実行用にGenericWebApplicationContextをロードします。- 次で指定:
- インターフェース
AotContextLoaderのloadContextForAotRuntime - パラメーター:
mergedConfig- アプリケーションコンテキストをロードするために使用するマージされたコンテキスト構成initializer- Bean 定義を再作成するためにコンテキストに適用する必要があるApplicationContextInitializer- 戻り値:
- 新しい Web アプリケーションコンテキスト
- 例外:
ExceptionSE- コンテキストの読み込みに失敗した場合- 導入:
- 6.0
- 関連事項:
validateMergedContextConfiguration
このコンテキストローダーがサポートするものに関して、提供されたWebMergedContextConfigurationを検証します。デフォルトの実装はノーオペレーションですが、必要に応じてサブクラスによってオーバーライドできます。
- パラメーター:
mergedConfig- 検証するマージされた構成- 例外:
IllegalStateExceptionSE- 指定された構成がこのコンテキストローダーに対して有効でない場合- 導入:
- 4.0.4
createContext
このContextLoaderで使用されるGenericWebApplicationContextを作成するためのファクトリメソッド。デフォルトの実装では、デフォルトのコンストラクターを使用して
GenericWebApplicationContextを作成します。このメソッドはオーバーライドされる可能性があります。— たとえば、カスタムコンテキストサブクラスを使用したり、カスタムDefaultListableBeanFactory実装でGenericWebApplicationContextを作成したりします。- 戻り値:
- 新しくインスタンス化された
GenericWebApplicationContext - 導入:
- 5.3.23
configureWebResources
protected void configureWebResources(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) 提供された Web アプリケーションコンテキスト(WAC)の Web リソースを構成します。Implementation Details
提供された WAC に親がない場合、またはその親が WAC でない場合、提供された WAC はルート WAC として構成されます(以下の「ルート WAC 構成」を参照)。
そうでない場合、提供された WAC のコンテキスト階層がトラバースされて、最上位の WAC(つまり、ルート)が検出されます。ルート WAC の
ServletContextEE は、提供された WAC のServletContextとして設定されます。Root WAC Configuration
- リソースのベースパスは、指定された
WebMergedContextConfigurationから取得されます。 ResourceLoaderはMockServletContextに対してインスタンス化されます。リソースのベースパスの先頭に "classpath:" が付いている場合、DefaultResourceLoaderが使用されます。それ以外の場合は、FileSystemResourceLoaderが使用されます。MockServletContextは、リソースベースパスとリソースローダーを使用して作成されます。- 提供された
GenericWebApplicationContextは、WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTEキーのMockServletContextに格納されます。 - 最後に、
MockServletContextがWebApplicationContextに設定されます。
- パラメーター:
context- Web リソースを構成する Web アプリケーションコンテキストwebMergedConfig- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成
- リソースのベースパスは、指定された
customizeBeanFactory
protected void customizeBeanFactory(DefaultListableBeanFactory beanFactory, WebMergedContextConfiguration webMergedConfig) このコンテキストローダーによって作成されたWebApplicationContextの内部 Bean ファクトリをカスタマイズします。デフォルトの実装は空ですが、サブクラスでオーバーライドして、
DefaultListableBeanFactoryの標準設定をカスタマイズできます。- パラメーター:
beanFactory- このコンテキストローダーによって作成された Bean ファクトリwebMergedConfig- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成- 関連事項:
loadContext(MergedContextConfiguration)DefaultListableBeanFactory.setAllowBeanDefinitionOverriding(boolean)DefaultListableBeanFactory.setAllowEagerClassLoading(boolean)AbstractAutowireCapableBeanFactory.setAllowCircularReferences(boolean)AbstractAutowireCapableBeanFactory.setAllowRawInjectionDespiteWrapping(boolean)
loadBeanDefinitions
protected abstract void loadBeanDefinitions(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) 提供されたWebMergedContextConfigurationの場所またはクラスから、提供されたcontextに Bean 定義をロードします。具象サブクラスは適切な実装を提供する必要があります。
- パラメーター:
context- Bean 定義をロードする必要があるコンテキストwebMergedConfig- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成- 関連事項:
customizeContext
protected void customizeContext(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) Bean 定義がコンテキストにロードされた後でコンテキストがリフレッシュされる前に、この文脈ローダーによって作成されたGenericWebApplicationContextをカスタマイズします。デフォルトの実装は、単に
AbstractContextLoader.customizeContext(ConfigurableApplicationContext, MergedContextConfiguration)に委譲するだけです。- パラメーター:
context- 新しく作成された Web アプリケーションコンテキストwebMergedConfig- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成- 関連事項:
loadContext
AbstractGenericWebContextLoaderは、レガシーContextLoaderではなく、SmartContextLoaderとして使用する必要があります。このメソッドはサポートされていません。- 次で指定:
- インターフェース
ContextLoaderのloadContext - 次で指定:
- インターフェース
SmartContextLoaderのloadContext - パラメーター:
locations- アプリケーションコンテキストをロードするために使用するリソースの場所- 戻り値:
- 新しいアプリケーションコンテキスト
- 例外:
UnsupportedOperationExceptionSE- この実装ExceptionSE- コンテキストの読み込みに失敗した場合- 関連事項:
loadContextForAotProcessing(MergedContextConfiguration, RuntimeHints)に置き換えられ、Spring Framework 8.0 で削除される予定