Class AnnotationConfigWebContextLoader
- All Implemented Interfaces:
AotContextLoader,ContextLoader,SmartContextLoader
AbstractGenericWebContextLoader that loads
bean definitions from annotated classes.
See the Javadoc for
@ContextConfiguration
for a definition of annotated class.
Note: AnnotationConfigWebContextLoader supports annotated classes
rather than the String-based resource locations defined by the legacy
ContextLoader API. Thus,
although AnnotationConfigWebContextLoader extends
AbstractGenericWebContextLoader, AnnotationConfigWebContextLoader
does not support any String-based methods defined by
AbstractContextLoader or AbstractGenericWebContextLoader.
Consequently, AnnotationConfigWebContextLoader should chiefly be
considered a SmartContextLoader
rather than a ContextLoader.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>[]detectDefaultConfigurationClasses(Class<?> declaringClass) Detect the default configuration classes for the supplied test class.protected String[]generateDefaultLocations(Class<?> clazz) AnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.protected StringAnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.protected voidloadBeanDefinitions(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) Register classes in the supplied context from the classes in the suppliedWebMergedContextConfiguration.protected String[]modifyLocations(Class<?> clazz, String... locations) AnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.voidprocessContextConfiguration(ContextConfigurationAttributes configAttributes) Process annotated classes in the suppliedContextConfigurationAttributes.protected voidvalidateMergedContextConfiguration(WebMergedContextConfiguration webMergedConfig) Ensure that the suppliedWebMergedContextConfigurationdoes not containlocations.Methods inherited from class org.springframework.test.context.web.AbstractGenericWebContextLoader
configureWebResources, createContext, customizeBeanFactory, customizeContext, loadContext, loadContext, loadContextForAotProcessing, loadContextForAotProcessing, loadContextForAotRuntimeMethods inherited from class org.springframework.test.context.support.AbstractContextLoader
customizeContext, getResourceSuffixes, isGenerateDefaultLocations, prepareContext, processLocationsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.test.context.SmartContextLoader
processLocations
-
Constructor Details
-
AnnotationConfigWebContextLoader
public AnnotationConfigWebContextLoader()
-
-
Method Details
-
processContextConfiguration
Process annotated classes in the suppliedContextConfigurationAttributes.If the annotated classes are
nullor empty andAbstractContextLoader.isGenerateDefaultLocations()returnstrue, thisSmartContextLoaderwill attempt to detect default configuration classes. If defaults are detected they will be set in the supplied configuration attributes. Otherwise, properties in the supplied configuration attributes will not be modified.- Specified by:
processContextConfigurationin interfaceSmartContextLoader- Overrides:
processContextConfigurationin classAbstractContextLoader- Parameters:
configAttributes- the context configuration attributes to process- See Also:
-
detectDefaultConfigurationClasses
Detect the default configuration classes for the supplied test class.The default implementation simply delegates to
AnnotationConfigContextLoaderUtils.detectDefaultConfigurationClasses(Class).- Parameters:
declaringClass- the test class that declared@ContextConfiguration- Returns:
- an array of default configuration classes, potentially empty but never
null - See Also:
-
modifyLocations
AnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Overrides:
modifyLocationsin classAbstractContextLoader- Parameters:
clazz- the class with which the locations are associatedlocations- the resource locations to be modified- Returns:
- an array of modified application context resource locations
- Throws:
UnsupportedOperationException- in this implementation- See Also:
-
generateDefaultLocations
AnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Overrides:
generateDefaultLocationsin classAbstractContextLoader- Parameters:
clazz- the class for which the default locations are to be generated- Returns:
- an array of default application context resource locations
- Throws:
UnsupportedOperationException- in this implementation- See Also:
-
getResourceSuffix
AnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Specified by:
getResourceSuffixin classAbstractContextLoader- Returns:
- the resource suffix; never
nullor empty - Throws:
UnsupportedOperationException- in this implementation- See Also:
-
loadBeanDefinitions
protected void loadBeanDefinitions(GenericWebApplicationContext context, WebMergedContextConfiguration webMergedConfig) Register classes in the supplied context from the classes in the suppliedWebMergedContextConfiguration.Each class must represent an annotated class. An
AnnotatedBeanDefinitionReaderis used to register the appropriate bean definitions.- Specified by:
loadBeanDefinitionsin classAbstractGenericWebContextLoader- Parameters:
context- the context in which the annotated classes should be registeredwebMergedConfig- the merged configuration from which the classes should be retrieved- See Also:
-
validateMergedContextConfiguration
Ensure that the suppliedWebMergedContextConfigurationdoes not containlocations.- Overrides:
validateMergedContextConfigurationin classAbstractGenericWebContextLoader- Parameters:
webMergedConfig- the merged configuration to validate- Since:
- 4.0.4
- See Also:
-