Class 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:
    EnableAutoConfiguration
    • Method Detail

      • selectImports

        public String[] selectImports​(org.springframework.core.type.AnnotationMetadata annotationMetadata)
        Specified by:
        selectImports in interface org.springframework.context.annotation.ImportSelector
      • getImportGroup

        public Class<? extends org.springframework.context.annotation.DeferredImportSelector.Group> getImportGroup()
        Specified by:
        getImportGroup in interface org.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 appropriate AnnotationAttributes from the AnnotationMetadata. By default this method will return attributes for getAnnotationClass().
        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<StringgetCandidateConfigurations​(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 using SpringFactoriesLoader with getSpringFactoriesLoaderFactoryClass().
        Parameters:
        metadata - the source metadata
        attributes - the annotation attributes
        Returns:
        a list of candidate configurations
      • 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<StringgetExclusions​(org.springframework.core.type.AnnotationMetadata metadata,
                                            org.springframework.core.annotation.AnnotationAttributes attributes)
        Return any exclusions that limit the candidate configurations.
        Parameters:
        metadata - the source metadata
        attributes - the annotation attributes
        Returns:
        exclusions or an empty set
      • asList

        protected final List<StringasList​(org.springframework.core.annotation.AnnotationAttributes attributes,
                                            String name)
      • setBeanFactory

        public void setBeanFactory​(org.springframework.beans.factory.BeanFactory beanFactory)
                            throws org.springframework.beans.BeansException
        Specified by:
        setBeanFactory in interface org.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 interface org.springframework.beans.factory.BeanClassLoaderAware
      • setEnvironment

        public void setEnvironment​(org.springframework.core.env.Environment environment)
        Specified by:
        setEnvironment in interface org.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 interface org.springframework.context.ResourceLoaderAware
      • getResourceLoader

        protected final org.springframework.core.io.ResourceLoader getResourceLoader()
      • getOrder

        public int getOrder()
        Specified by:
        getOrder in interface org.springframework.core.Ordered