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 newApplicationContextfor AOT build-time processing based on the suppliedMergedContextConfiguration, configure the context, and return the context.loadContextForAotRuntime(MergedContextConfiguration mergedConfig, ApplicationContextInitializer<ConfigurableApplicationContext> initializer) Load a newApplicationContextfor AOT run-time execution based on the suppliedMergedContextConfigurationandApplicationContextInitializer.Methods inherited from interface org.springframework.test.context.SmartContextLoader
loadContext, loadContext, processContextConfiguration, processLocations
-
Method Details
-
loadContextForAotProcessing
ApplicationContext loadContextForAotProcessing(MergedContextConfiguration mergedConfig) throws Exception Load a newApplicationContextfor 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 theApplicationContextor register a JVM shutdown hook for it. Otherwise, this method should implement behavior identical toloadContext(MergedContextConfiguration).Any exception thrown while attempting to load an
ApplicationContextshould 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 newApplicationContextfor AOT run-time execution based on the suppliedMergedContextConfigurationandApplicationContextInitializer.This method must instantiate, initialize, and refresh the
ApplicationContext.Any exception thrown while attempting to load an
ApplicationContextshould 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- theApplicationContextInitializerthat should be applied to the context in order to recreate bean definitions- Returns:
- a new
GenericApplicationContext - Throws:
ContextLoadException- if context loading failedException- See Also:
-