Class AutoConfigurationImportSelector
- java.lang.Object
- org.springframework.boot.autoconfigure.AutoConfigurationImportSelector
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanClassLoaderAware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.context.annotation.DeferredImportSelector
,org.springframework.context.annotation.ImportSelector
,org.springframework.context.EnvironmentAware
,org.springframework.context.ResourceLoaderAware
,org.springframework.core.Ordered
public class AutoConfigurationImportSelector extends Object implements org.springframework.context.annotation.DeferredImportSelector, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.context.ResourceLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.context.EnvironmentAware, org.springframework.core.Ordered
DeferredImportSelector
to handleauto-configuration
. This class can also be subclassed if a custom variant of@EnableAutoConfiguration
is needed.- Since:
- 1.3.0
- See Also:
EnableAutoConfiguration
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AutoConfigurationImportSelector.AutoConfigurationEntry
Constructor Summary
Constructors Constructor Description AutoConfigurationImportSelector()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<String>
asList(org.springframework.core.annotation.AnnotationAttributes attributes, String name)
protected Class<?>
getAnnotationClass()
Return the source annotation class used by the selector.protected org.springframework.core.annotation.AnnotationAttributes
getAttributes(org.springframework.core.type.AnnotationMetadata metadata)
Return the appropriateAnnotationAttributes
from theAnnotationMetadata
.protected AutoConfigurationImportSelector.AutoConfigurationEntry
getAutoConfigurationEntry(AutoConfigurationMetadata autoConfigurationMetadata, org.springframework.core.type.AnnotationMetadata annotationMetadata)
Return theAutoConfigurationImportSelector.AutoConfigurationEntry
based on theAnnotationMetadata
of the importing@Configuration
class.protected List<AutoConfigurationImportFilter>
getAutoConfigurationImportFilters()
protected List<AutoConfigurationImportListener>
getAutoConfigurationImportListeners()
protected ClassLoader
getBeanClassLoader()
protected org.springframework.beans.factory.config.ConfigurableListableBeanFactory
getBeanFactory()
protected List<String>
getCandidateConfigurations(org.springframework.core.type.AnnotationMetadata metadata, org.springframework.core.annotation.AnnotationAttributes attributes)
Return the auto-configuration class names that should be considered.protected org.springframework.core.env.Environment
getEnvironment()
protected Set<String>
getExclusions(org.springframework.core.type.AnnotationMetadata metadata, org.springframework.core.annotation.AnnotationAttributes attributes)
Return any exclusions that limit the candidate configurations.Class<? extends org.springframework.context.annotation.DeferredImportSelector.Group>
getImportGroup()
int
getOrder()
protected org.springframework.core.io.ResourceLoader
getResourceLoader()
protected Class<?>
getSpringFactoriesLoaderFactoryClass()
Return the class used bySpringFactoriesLoader
to load configuration candidates.protected void
handleInvalidExcludes(List<String> invalidExcludes)
Handle any invalid excludes that have been specified.protected boolean
isEnabled(org.springframework.core.type.AnnotationMetadata metadata)
protected <T> List<T>
removeDuplicates(List<T> list)
String[]
selectImports(org.springframework.core.type.AnnotationMetadata annotationMetadata)
void
setBeanClassLoader(ClassLoader classLoader)
void
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
void
setEnvironment(org.springframework.core.env.Environment environment)
void
setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
Constructor Detail
AutoConfigurationImportSelector
public AutoConfigurationImportSelector()
Method Detail
selectImports
public String[] selectImports(org.springframework.core.type.AnnotationMetadata annotationMetadata)
- Specified by:
selectImports
in interfaceorg.springframework.context.annotation.ImportSelector
getAutoConfigurationEntry
protected AutoConfigurationImportSelector.AutoConfigurationEntry getAutoConfigurationEntry(AutoConfigurationMetadata autoConfigurationMetadata, org.springframework.core.type.AnnotationMetadata annotationMetadata)
Return theAutoConfigurationImportSelector.AutoConfigurationEntry
based on theAnnotationMetadata
of the importing@Configuration
class.- Parameters:
autoConfigurationMetadata
- the auto-configuration metadataannotationMetadata
- the annotation metadata of the configuration class- Returns:
- the auto-configurations that should be imported
getImportGroup
public Class<? extends org.springframework.context.annotation.DeferredImportSelector.Group> getImportGroup()
- Specified by:
getImportGroup
in interfaceorg.springframework.context.annotation.DeferredImportSelector
isEnabled
protected boolean isEnabled(org.springframework.core.type.AnnotationMetadata metadata)
getAttributes
protected org.springframework.core.annotation.AnnotationAttributes getAttributes(org.springframework.core.type.AnnotationMetadata metadata)
Return the appropriateAnnotationAttributes
from theAnnotationMetadata
. By default this method will return attributes forgetAnnotationClass()
.- Parameters:
metadata
- the annotation metadata- Returns:
- annotation attributes
getAnnotationClass
protected Class<?> getAnnotationClass()
Return the source annotation class used by the selector.- Returns:
- the annotation class
getCandidateConfigurations
protected List<String> getCandidateConfigurations(org.springframework.core.type.AnnotationMetadata metadata, org.springframework.core.annotation.AnnotationAttributes attributes)
Return the auto-configuration class names that should be considered. By default this method will load candidates usingSpringFactoriesLoader
withgetSpringFactoriesLoaderFactoryClass()
.- Parameters:
metadata
- the source metadataattributes
- theannotation attributes
- Returns:
- a list of candidate configurations
getSpringFactoriesLoaderFactoryClass
protected Class<?> getSpringFactoriesLoaderFactoryClass()
Return the class used bySpringFactoriesLoader
to load configuration candidates.- Returns:
- the factory class
handleInvalidExcludes
protected void handleInvalidExcludes(List<String> invalidExcludes)
Handle any invalid excludes that have been specified.- Parameters:
invalidExcludes
- the list of invalid excludes (will always have at least one element)
getExclusions
protected Set<String> getExclusions(org.springframework.core.type.AnnotationMetadata metadata, org.springframework.core.annotation.AnnotationAttributes attributes)
Return any exclusions that limit the candidate configurations.- Parameters:
metadata
- the source metadataattributes
- theannotation attributes
- Returns:
- exclusions or an empty set
getAutoConfigurationImportFilters
protected List<AutoConfigurationImportFilter> getAutoConfigurationImportFilters()
removeDuplicates
protected final <T> List<T> removeDuplicates(List<T> list)
asList
protected final List<String> asList(org.springframework.core.annotation.AnnotationAttributes attributes, String name)
getAutoConfigurationImportListeners
protected List<AutoConfigurationImportListener> getAutoConfigurationImportListeners()
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) throws org.springframework.beans.BeansException
- Specified by:
setBeanFactory
in interfaceorg.springframework.beans.factory.BeanFactoryAware
- Throws:
org.springframework.beans.BeansException
getBeanFactory
protected final org.springframework.beans.factory.config.ConfigurableListableBeanFactory getBeanFactory()
setBeanClassLoader
public void setBeanClassLoader(ClassLoader classLoader)
- Specified by:
setBeanClassLoader
in interfaceorg.springframework.beans.factory.BeanClassLoaderAware
getBeanClassLoader
protected ClassLoader getBeanClassLoader()
setEnvironment
public void setEnvironment(org.springframework.core.env.Environment environment)
- Specified by:
setEnvironment
in interfaceorg.springframework.context.EnvironmentAware
getEnvironment
protected final org.springframework.core.env.Environment getEnvironment()
setResourceLoader
public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
- Specified by:
setResourceLoader
in interfaceorg.springframework.context.ResourceLoaderAware
getResourceLoader
protected final org.springframework.core.io.ResourceLoader getResourceLoader()
getOrder
public int getOrder()
- Specified by:
getOrder
in interfaceorg.springframework.core.Ordered