Interface AotContextLoader
- All Superinterfaces:
ContextLoader
,SmartContextLoader
- All Known Implementing Classes:
AbstractDelegatingSmartContextLoader
,AbstractGenericContextLoader
,AbstractGenericWebContextLoader
,AnnotationConfigContextLoader
,AnnotationConfigWebContextLoader
,DelegatingSmartContextLoader
,GenericGroovyXmlContextLoader
,GenericGroovyXmlWebContextLoader
,GenericXmlContextLoader
,GenericXmlWebContextLoader
,WebDelegatingSmartContextLoader
ApplicationContext
for build-time
AOT processing as well as run-time AOT execution for an integration test managed by the Spring TestContext Framework.
AotContextLoader
is an extension of the SmartContextLoader
SPI that allows a context loader to optionally provide ahead-of-time (AOT)
support.
As of Spring Framework 6.0, AOT infrastructure requires that an AotContextLoader
create a GenericApplicationContext
for both build-time processing and run-time execution.
- Since:
- 6.0
- Author:
- Sam Brannen
-
Method Summary
Modifier and TypeMethodDescriptiondefault ApplicationContext
loadContextForAotProcessing
(MergedContextConfiguration mergedConfig) Deprecated, for removal: This API element is subject to removal in a future version.default ApplicationContext
loadContextForAotProcessing
(MergedContextConfiguration mergedConfig, RuntimeHints runtimeHints) Load a newApplicationContext
for AOT build-time processing based on the suppliedMergedContextConfiguration
, configure the context, and return the context.loadContextForAotRuntime
(MergedContextConfiguration mergedConfig, ApplicationContextInitializer<ConfigurableApplicationContext> initializer) Load a newApplicationContext
for AOT run-time execution based on the suppliedMergedContextConfiguration
andApplicationContextInitializer
.Methods inherited from interface org.springframework.test.context.SmartContextLoader
loadContext, loadContext, processContextConfiguration, processLocations
-
Method Details
-
loadContextForAotProcessing
@Deprecated(since="6.2.4", forRemoval=true) default ApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig) throws Exception Deprecated, for removal: This API element is subject to removal in a future version.as of Spring Framework 6.2.4, in favor ofloadContextForAotProcessing(MergedContextConfiguration, RuntimeHints)
; to be removed in Spring Framework 8.0Load a newApplicationContext
for AOT build-time processing based on the suppliedMergedContextConfiguration
, configure the context, and return the context.The default implementation of this method throws an
UnsupportedOperationException
. Note, however, that the framework invokesloadContextForAotProcessing(MergedContextConfiguration, RuntimeHints)
as of Spring Framework 6.2.4.- Parameters:
mergedConfig
- the merged context configuration to use to load the application context- Returns:
- a new
GenericApplicationContext
- Throws:
ContextLoadException
- if context loading failedException
- See Also:
-
loadContextForAotProcessing
default ApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig, RuntimeHints runtimeHints) throws Exception Load a newApplicationContext
for AOT build-time processing based on the suppliedMergedContextConfiguration
, configure the context, and return the context.In contrast to
SmartContextLoader.loadContext(MergedContextConfiguration)
, this method must not refresh theApplicationContext
or register a JVM shutdown hook for it. Otherwise, this method should implement behavior identical toloadContext(MergedContextConfiguration)
.Any exception thrown while attempting to load an
ApplicationContext
should be wrapped in aContextLoadException
. Concrete implementations should therefore contain a try-catch block similar to the following.GenericApplicationContext context = // create context try { // configure context } catch (Exception ex) { throw new ContextLoadException(context, ex); }
For backward compatibility, the default implementation of this method delegates to
loadContextForAotProcessing(MergedContextConfiguration)
. Note, however, that the framework only invokes this method as of Spring Framework 6.2.4.- Parameters:
mergedConfig
- the merged context configuration to use to load the application contextruntimeHints
- the runtime hints- Returns:
- a new
GenericApplicationContext
- Throws:
ContextLoadException
- if context loading failedException
- Since:
- 6.2.4
- See Also:
-
loadContextForAotRuntime
ApplicationContext loadContextForAotRuntime(MergedContextConfiguration mergedConfig, ApplicationContextInitializer<ConfigurableApplicationContext> initializer) throws Exception Load a newApplicationContext
for AOT run-time execution based on the suppliedMergedContextConfiguration
andApplicationContextInitializer
.This method must instantiate, initialize, and refresh the
ApplicationContext
.Any exception thrown while attempting to load an
ApplicationContext
should be wrapped in aContextLoadException
. Concrete implementations should therefore contain a try-catch block similar to the following.GenericApplicationContext context = // create context try { // configure and refresh context } catch (Exception ex) { throw new ContextLoadException(context, ex); }
- Parameters:
mergedConfig
- the merged context configuration to use to load the application contextinitializer
- theApplicationContextInitializer
that should be applied to the context in order to recreate bean definitions- Returns:
- a new
GenericApplicationContext
- Throws:
ContextLoadException
- if context loading failedException
- See Also:
-
loadContextForAotProcessing(MergedContextConfiguration, RuntimeHints)
; to be removed in Spring Framework 8.0