public abstract class AbstractGenericWebContextLoader extends AbstractContextLoader
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)
の適切な実装を提供する必要があります。
loadContext(MergedContextConfiguration)
, loadContext(String...)
コンストラクターと説明 |
---|
AbstractGenericWebContextLoader() |
customizeContext, generateDefaultLocations, getResourceSuffix, getResourceSuffixes, isGenerateDefaultLocations, modifyLocations, prepareContext, processContextConfiguration, processLocations
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected static final Log logger
public final ConfigurableApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws ExceptionSE
MergedContextConfiguration
から Spring WebApplicationContext
をロードします。実装の詳細:
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 シャットダウンフックを登録します。mergedConfig
- アプリケーションコンテキストをロードするために使用するマージされたコンテキスト構成 ExceptionSE
- コンテキストの読み込みに失敗した場合 SmartContextLoader.loadContext(MergedContextConfiguration)
, GenericWebApplicationContext
protected void validateMergedContextConfiguration(WebMergedContextConfiguration mergedConfig)
WebMergedContextConfiguration
を検証します。デフォルトの実装はノーオペレーションですが、必要に応じてサブクラスによってオーバーライドできます。
mergedConfig
- 検証するマージされた構成 IllegalStateExceptionSE
- 指定された構成がこのコンテキストローダーに対して有効でない場合 protected void configureWebResources(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig)
提供された WAC に親がない場合、またはその親が WAC でない場合、提供された WAC はルート WAC として構成されます(以下の「ルート WAC 構成」を参照)。
そうでない場合、提供された WAC のコンテキスト階層がトラバースされて、最上位の WAC(つまり、ルート)が検出されます。ルート WAC の ServletContext
EE は、提供された WAC の ServletContext
として設定されます。
WebMergedContextConfiguration
から取得されます。ResourceLoader
は MockServletContext
に対してインスタンス化されます。リソースのベースパスの先頭に "classpath:
" が付いている場合、DefaultResourceLoader
が使用されます。それ以外の場合は、FileSystemResourceLoader
が使用されます。MockServletContext
は、リソースベースパスとリソースローダーを使用して作成されます。GenericWebApplicationContext
は、WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
キーの MockServletContext
に格納されます。MockServletContext
が WebApplicationContext
に設定されます。context
- Web リソースを構成する Web アプリケーションコンテキスト webMergedConfig
- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成 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)
protected abstract void loadBeanDefinitions(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig)
WebMergedContextConfiguration
の場所またはクラスから、提供された context
に Bean 定義をロードします。具象サブクラスは適切な実装を提供する必要があります。
context
- Bean 定義をロードする必要があるコンテキスト webMergedConfig
- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成 loadContext(MergedContextConfiguration)
protected void customizeContext(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig)
GenericWebApplicationContext
をカスタマイズします。 デフォルトの実装は、単に AbstractContextLoader.customizeContext(ConfigurableApplicationContext, MergedContextConfiguration)
に委譲するだけです。
context
- 新しく作成された Web アプリケーションコンテキスト webMergedConfig
- Web アプリケーションコンテキストの読み込みに使用するマージされたコンテキスト構成 loadContext(MergedContextConfiguration)
, AbstractContextLoader.customizeContext(ConfigurableApplicationContext, MergedContextConfiguration)
public final ApplicationContext loadContext(StringSE... locations) throws ExceptionSE
AbstractGenericWebContextLoader
は、レガシー ContextLoader
ではなく、SmartContextLoader
として使用する必要があります。このメソッドはサポートされていません。locations
- アプリケーションコンテキストをロードするために使用するリソースの場所 UnsupportedOperationExceptionSE
- この実装 ExceptionSE
- コンテキストの読み込みに失敗した場合 ContextLoader.loadContext(java.lang.String[])