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 TypeMethodDescriptionloadContextForAotProcessing
(MergedContextConfiguration mergedConfig) 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
ApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig) 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); }
- 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:
-
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:
-