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.
- Since:
- 3.2
- Author:
- Sam Brannen
- See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier 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 AbstractGenericWebContextLoaderconfigureWebResources, createContext, customizeBeanFactory, customizeContext, loadContext, loadContext, loadContextForAotProcessing, loadContextForAotProcessing, loadContextForAotRuntimeMethods inherited from class AbstractContextLoadercustomizeContext, getResourceSuffixes, isGenerateDefaultLocations, prepareContext, processLocationsMethods inherited from class Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface SmartContextLoaderprocessLocations
- 
Constructor Details- 
AnnotationConfigWebContextLoaderpublic AnnotationConfigWebContextLoader()
 
- 
- 
Method Details- 
processContextConfigurationProcess 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 interface- SmartContextLoader
- Overrides:
- processContextConfigurationin class- AbstractContextLoader
- Parameters:
- configAttributes- the context configuration attributes to process
- See Also:
 
- 
detectDefaultConfigurationClassesDetect 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:
 
- 
modifyLocationsAnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Overrides:
- modifyLocationsin class- AbstractContextLoader
- Parameters:
- clazz- the class with which the locations are associated
- locations- the resource locations to be modified
- Returns:
- an array of modified application context resource locations
- Throws:
- UnsupportedOperationException- in this implementation
- See Also:
 
- 
generateDefaultLocationsAnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Overrides:
- generateDefaultLocationsin class- AbstractContextLoader
- 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:
 
- 
getResourceSuffixAnnotationConfigWebContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Specified by:
- getResourceSuffixin class- AbstractContextLoader
- Returns:
- the resource suffix; never nullor empty
- Throws:
- UnsupportedOperationException- in this implementation
- See Also:
 
- 
loadBeanDefinitionsprotected 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 class- AbstractGenericWebContextLoader
- Parameters:
- context- the context in which the annotated classes should be registered
- webMergedConfig- the merged configuration from which the classes should be retrieved
- See Also:
 
- 
validateMergedContextConfigurationEnsure that the suppliedWebMergedContextConfigurationdoes not containlocations.- Overrides:
- validateMergedContextConfigurationin class- AbstractGenericWebContextLoader
- Parameters:
- webMergedConfig- the merged configuration to validate
- Since:
- 4.0.4
- See Also:
 
 
-