Interface ImportSelector

All Known Subinterfaces:
DeferredImportSelector
All Known Implementing Classes:
AdviceModeImportSelector, AsyncConfigurationSelector, CachingConfigurationSelector

public interface ImportSelector
Interface to be implemented by types that determine which @Configuration class(es) should be imported based on a given selection criteria, usually one or more annotation attributes.

An ImportSelector may implement any of the following Aware interfaces, and their respective methods will be called prior to selectImports(org.springframework.core.type.AnnotationMetadata):

Alternatively, the class may provide a single constructor with one or more of the following supported parameter types:

ImportSelector implementations are usually processed in the same way as regular @Import annotations, however, it is also possible to defer selection of imports until all @Configuration classes have been processed (see DeferredImportSelector for details).

Since:
3.1
Author:
Chris Beams, Juergen Hoeller
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    default Predicate<String>
    Return a predicate for excluding classes from the import candidates, to be transitively applied to all classes found through this selector's imports.
    selectImports(org.springframework.core.type.AnnotationMetadata importingClassMetadata)
    Select and return the names of which class(es) should be imported based on the AnnotationMetadata of the importing @Configuration class.
  • Method Details

    • selectImports

      String[] selectImports(org.springframework.core.type.AnnotationMetadata importingClassMetadata)
      Select and return the names of which class(es) should be imported based on the AnnotationMetadata of the importing @Configuration class.
      Returns:
      the class names, or an empty array if none
    • getExclusionFilter

      @Nullable default Predicate<String> getExclusionFilter()
      Return a predicate for excluding classes from the import candidates, to be transitively applied to all classes found through this selector's imports.

      If this predicate returns true for a given fully-qualified class name, said class will not be considered as an imported configuration class, bypassing class file loading as well as metadata introspection.

      Returns:
      the filter predicate for fully-qualified candidate class names of transitively imported configuration classes, or null if none
      Since:
      5.2.4