Class AnnotationConfigContextLoader
- java.lang.Object
- org.springframework.test.context.support.AbstractContextLoader
- org.springframework.test.context.support.AbstractGenericContextLoader
- org.springframework.test.context.support.AnnotationConfigContextLoader
- All Implemented Interfaces:
ContextLoader,SmartContextLoader
public class AnnotationConfigContextLoader extends AbstractGenericContextLoader
Concrete implementation ofAbstractGenericContextLoaderthat loads bean definitions from component classes.See the Javadoc for
@ContextConfigurationfor a definition of component class.Note:
AnnotationConfigContextLoadersupports component classes rather than the String-based resource locations defined by the legacyContextLoaderAPI. Thus, althoughAnnotationConfigContextLoaderextendsAbstractGenericContextLoader,AnnotationConfigContextLoaderdoes not support any String-based methods defined byAbstractContextLoaderorAbstractGenericContextLoader. Consequently,AnnotationConfigContextLoadershould chiefly be considered aSmartContextLoaderrather than aContextLoader.
Constructor Summary
Constructors Constructor Description AnnotationConfigContextLoader()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected BeanDefinitionReadercreateBeanDefinitionReader(GenericApplicationContext context)AnnotationConfigContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.protected Class<?>[]detectDefaultConfigurationClasses(Class<?> declaringClass)Detect the default configuration classes for the supplied test class.protected String[]generateDefaultLocations(Class<?> clazz)AnnotationConfigContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.protected StringgetResourceSuffix()AnnotationConfigContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.protected voidloadBeanDefinitions(GenericApplicationContext context, MergedContextConfiguration mergedConfig)Register classes in the suppliedcontextfrom the classes in the suppliedMergedContextConfiguration.protected String[]modifyLocations(Class<?> clazz, String... locations)AnnotationConfigContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader.voidprocessContextConfiguration(ContextConfigurationAttributes configAttributes)Process component classes in the suppliedContextConfigurationAttributes.protected voidvalidateMergedContextConfiguration(MergedContextConfiguration mergedConfig)Ensure that the suppliedMergedContextConfigurationdoes not containlocations.Methods inherited from class org.springframework.test.context.support.AbstractGenericContextLoader
createContext, customizeBeanFactory, customizeContext, loadContext, loadContext, prepareContext
Methods inherited from class org.springframework.test.context.support.AbstractContextLoader
customizeContext, getResourceSuffixes, isGenerateDefaultLocations, prepareContext, processLocations
Constructor Detail
AnnotationConfigContextLoader
public AnnotationConfigContextLoader()
Method Detail
processContextConfiguration
public void processContextConfiguration(ContextConfigurationAttributes configAttributes)
Process component classes in the suppliedContextConfigurationAttributes.If the component classes are
nullor empty andAbstractContextLoader.isGenerateDefaultLocations()returnstrue, thisSmartContextLoaderwill attempt todetect default configuration classes. If defaults are detected they will besetin 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:
SmartContextLoader.processContextConfiguration(ContextConfigurationAttributes),AbstractContextLoader.isGenerateDefaultLocations(),detectDefaultConfigurationClasses(Class)
detectDefaultConfigurationClasses
protected Class<?>[] detectDefaultConfigurationClasses(Class<?> declaringClass)
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:
AnnotationConfigContextLoaderUtils
modifyLocations
protected String[] modifyLocations(Class<?> clazz, String... locations)
AnnotationConfigContextLoadershould 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:
AbstractContextLoader.modifyLocations(java.lang.Class<?>, java.lang.String...)
generateDefaultLocations
protected String[] generateDefaultLocations(Class<?> clazz)
AnnotationConfigContextLoadershould 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:
AbstractContextLoader.generateDefaultLocations(java.lang.Class<?>)
getResourceSuffix
protected String getResourceSuffix()
AnnotationConfigContextLoadershould 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:
AbstractContextLoader.getResourceSuffix()
validateMergedContextConfiguration
protected void validateMergedContextConfiguration(MergedContextConfiguration mergedConfig)
Ensure that the suppliedMergedContextConfigurationdoes not containlocations.- Overrides:
validateMergedContextConfigurationin classAbstractGenericContextLoader- Parameters:
mergedConfig- the merged configuration to validate- Since:
- 4.0.4
- See Also:
AbstractGenericContextLoader.validateMergedContextConfiguration(org.springframework.test.context.MergedContextConfiguration)
loadBeanDefinitions
protected void loadBeanDefinitions(GenericApplicationContext context, MergedContextConfiguration mergedConfig)
Register classes in the suppliedcontextfrom the classes in the suppliedMergedContextConfiguration.Each class must represent a component class. An
AnnotatedBeanDefinitionReaderis used to register the appropriate bean definitions.Note that this method does not call
createBeanDefinitionReader(org.springframework.context.support.GenericApplicationContext)sinceAnnotatedBeanDefinitionReaderis not an instance ofBeanDefinitionReader.- Overrides:
loadBeanDefinitionsin classAbstractGenericContextLoader- Parameters:
context- the context in which the component classes should be registeredmergedConfig- the merged configuration from which the classes should be retrieved- See Also:
AbstractGenericContextLoader.loadBeanDefinitions(org.springframework.context.support.GenericApplicationContext, org.springframework.test.context.MergedContextConfiguration)
createBeanDefinitionReader
protected BeanDefinitionReader createBeanDefinitionReader(GenericApplicationContext context)
AnnotationConfigContextLoadershould be used as aSmartContextLoader, not as a legacyContextLoader. Consequently, this method is not supported.- Specified by:
createBeanDefinitionReaderin classAbstractGenericContextLoader- Parameters:
context- the context for which theBeanDefinitionReadershould be created- Returns:
- a
BeanDefinitionReaderfor the supplied context - Throws:
UnsupportedOperationException- in this implementation- See Also:
loadBeanDefinitions(org.springframework.context.support.GenericApplicationContext, org.springframework.test.context.MergedContextConfiguration),AbstractGenericContextLoader.createBeanDefinitionReader(org.springframework.context.support.GenericApplicationContext)