クラス 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 void
configureWebResources
(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) 提供された Web アプリケーションコンテキスト(WAC)の Web リソースを構成します。protected GenericWebApplicationContext
このContextLoader
で使用されるGenericWebApplicationContext
を作成するためのファクトリメソッド。protected void
customizeBeanFactory
(DefaultListableBeanFactory beanFactory, WebMergedContextConfiguration webMergedConfig) このコンテキストローダーによって作成されたWebApplicationContext
の内部 Bean ファクトリをカスタマイズします。protected void
customizeContext
(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) Bean 定義がコンテキストにロードされた後でコンテキストがリフレッシュされる前に、この文脈ローダーによって作成されたGenericWebApplicationContext
をカスタマイズします。protected abstract void
loadBeanDefinitions
(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) 提供されたWebMergedContextConfiguration
の場所またはクラスから、提供されたcontext
に Bean 定義をロードします。final ApplicationContext
loadContext
(StringSE... locations) final ApplicationContext
loadContext
(MergedContextConfiguration mergedConfig) 提供されたMergedContextConfiguration
のGenericWebApplicationContext
をロードします。loadContextForAotProcessing
(MergedContextConfiguration mergedConfig) 提供された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
public final GenericWebApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig) throws ExceptionSE 提供されたMergedContextConfiguration
に基づいて、AOT ビルド時の処理のためにGenericWebApplicationContext
をロードします。loadContext(MergedContextConfiguration)
とは対照的に、このメソッドはApplicationContext
をリフレッシュしたり、JVM シャットダウンフックを登録したりしません。それ以外の場合、このメソッドはloadContext(MergedContextConfiguration)
と同じ動作を実装します。- 次で指定:
- インターフェース
AotContextLoader
のloadContextForAotProcessing
- パラメーター:
mergedConfig
- アプリケーションコンテキストをロードするために使用するマージされたコンテキスト構成- 戻り値:
- 新しい Web アプリケーションコンテキスト
- 例外:
ExceptionSE
- コンテキストの読み込みに失敗した場合- 導入:
- 6.0
- 関連事項:
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 の
ServletContext
EE は、提供された 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
- コンテキストの読み込みに失敗した場合- 関連事項: