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 ApplicationContextloadContextForAotProcessing(MergedContextConfiguration mergedConfig) Deprecated, for removal: This API element is subject to removal in a future version.default ApplicationContextloadContextForAotProcessing(MergedContextConfiguration mergedConfig, RuntimeHints runtimeHints) 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
@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 newApplicationContextfor 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 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); }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 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:
-
loadContextForAotProcessing(MergedContextConfiguration, RuntimeHints); to be removed in Spring Framework 8.0