Interface ImportSelector

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

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(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(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