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 followingAware
interfaces, and their respective methods will be called prior toselectImports(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 (seeDeferredImportSelector
for details).- Since:
- 3.1
- Author:
- Chris Beams, Juergen Hoeller
- See Also:
DeferredImportSelector
,Import
,ImportBeanDefinitionRegistrar
,Configuration
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description 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.String[]
selectImports(AnnotationMetadata importingClassMetadata)
Select and return the names of which class(es) should be imported based on theAnnotationMetadata
of the importing @Configuration
class.
Method Detail
selectImports
String[] selectImports(AnnotationMetadata importingClassMetadata)
Select and return the names of which class(es) should be imported based on theAnnotationMetadata
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