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 handle auto-configuration
. This class can also be subclassed if a custom variant of
@EnableAutoConfiguration
is needed.- Since:
- 1.3.0
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
Nested classes/interfaces inherited from interface org.springframework.context.annotation.DeferredImportSelector
org.springframework.context.annotation.DeferredImportSelector.Group
-
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Class<?>
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
.getAutoConfigurationEntry
(org.springframework.core.type.AnnotationMetadata annotationMetadata) Return theAutoConfigurationImportSelector.AutoConfigurationEntry
based on theAnnotationMetadata
of the importing@Configuration
class.protected List<AutoConfigurationImportFilter>
protected List<AutoConfigurationImportListener>
protected ClassLoader
protected final org.springframework.beans.factory.config.ConfigurableListableBeanFactory
getCandidateConfigurations
(org.springframework.core.type.AnnotationMetadata metadata, org.springframework.core.annotation.AnnotationAttributes attributes) Return the auto-configuration class names that should be considered.protected final org.springframework.core.env.Environment
Returns the auto-configurations excluded by thespring.autoconfigure.exclude
property.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>
int
getOrder()
protected final org.springframework.core.io.ResourceLoader
protected void
handleInvalidExcludes
(List<String> invalidExcludes) Handle any invalid excludes that have been specified.protected boolean
isEnabled
(org.springframework.core.type.AnnotationMetadata metadata) protected final <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 Details
-
AutoConfigurationImportSelector
public AutoConfigurationImportSelector()
-
-
Method Details
-
selectImports
- Specified by:
selectImports
in interfaceorg.springframework.context.annotation.ImportSelector
-
getExclusionFilter
- Specified by:
getExclusionFilter
in interfaceorg.springframework.context.annotation.ImportSelector
-
getAutoConfigurationEntry
protected AutoConfigurationImportSelector.AutoConfigurationEntry getAutoConfigurationEntry(org.springframework.core.type.AnnotationMetadata annotationMetadata) Return theAutoConfigurationImportSelector.AutoConfigurationEntry
based on theAnnotationMetadata
of the importing@Configuration
class.- Parameters:
annotationMetadata
- 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
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 usingImportCandidates
.- Parameters:
metadata
- the source metadataattributes
- theannotation attributes
- Returns:
- a list of candidate configurations
-
handleInvalidExcludes
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
-
getExcludeAutoConfigurationsProperty
Returns the auto-configurations excluded by thespring.autoconfigure.exclude
property.- Returns:
- excluded auto-configurations
- Since:
- 2.3.2
-
getAutoConfigurationImportFilters
-
removeDuplicates
-
asList
-
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
- Specified by:
setBeanClassLoader
in interfaceorg.springframework.beans.factory.BeanClassLoaderAware
-
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
-