public interface ImportBeanDefinitionRegistrar
Configuration classes. Useful when operating at the bean definition
 level (as opposed to @Bean method/instance level) is desired or necessary.
 Along with @Configuration and ImportSelector, classes of this type
 may be provided to the @Import annotation (or may also be returned from an
 ImportSelector).
 
An ImportBeanDefinitionRegistrar may implement any of the following
 Aware interfaces, and their respective
 methods will be called prior to registerBeanDefinitions(org.springframework.core.type.AnnotationMetadata, org.springframework.beans.factory.support.BeanDefinitionRegistry, org.springframework.beans.factory.support.BeanNameGenerator):
 
EnvironmentAwareBeanFactoryAware
 BeanClassLoaderAware
 ResourceLoaderAware
 Alternatively, the class may provide a single constructor with one or more of the following supported parameter types:
EnvironmentBeanFactoryClassLoaderResourceLoaderSee implementations and associated unit tests for usage examples.
Import, 
ImportSelector, 
Configuration| Modifier and Type | Method and Description | 
|---|---|
| default void | registerBeanDefinitions(org.springframework.core.type.AnnotationMetadata importingClassMetadata,
                       org.springframework.beans.factory.support.BeanDefinitionRegistry registry)Register bean definitions as necessary based on the given annotation metadata of
 the importing  @Configurationclass. | 
| default void | registerBeanDefinitions(org.springframework.core.type.AnnotationMetadata importingClassMetadata,
                       org.springframework.beans.factory.support.BeanDefinitionRegistry registry,
                       org.springframework.beans.factory.support.BeanNameGenerator importBeanNameGenerator)Register bean definitions as necessary based on the given annotation metadata of
 the importing  @Configurationclass. | 
default void registerBeanDefinitions(org.springframework.core.type.AnnotationMetadata importingClassMetadata,
                                     org.springframework.beans.factory.support.BeanDefinitionRegistry registry,
                                     org.springframework.beans.factory.support.BeanNameGenerator importBeanNameGenerator)
@Configuration class.
 Note that BeanDefinitionRegistryPostProcessor types may not be
 registered here, due to lifecycle constraints related to @Configuration
 class processing.
 
The default implementation delegates to
 registerBeanDefinitions(AnnotationMetadata, BeanDefinitionRegistry).
importingClassMetadata - annotation metadata of the importing classregistry - current bean definition registryimportBeanNameGenerator - the bean name generator strategy for imported beans:
 ConfigurationClassPostProcessor.IMPORT_BEAN_NAME_GENERATOR by default, or a
 user-provided one if ConfigurationClassPostProcessor.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)
 has been set. In the latter case, the passed-in strategy will be the same used for
 component scanning in the containing application context (otherwise, the default
 component-scan naming strategy is AnnotationBeanNameGenerator.INSTANCE).ConfigurationClassPostProcessor.IMPORT_BEAN_NAME_GENERATOR, 
ConfigurationClassPostProcessor.setBeanNameGenerator(org.springframework.beans.factory.support.BeanNameGenerator)default void registerBeanDefinitions(org.springframework.core.type.AnnotationMetadata importingClassMetadata,
                                     org.springframework.beans.factory.support.BeanDefinitionRegistry registry)
@Configuration class.
 Note that BeanDefinitionRegistryPostProcessor types may not be
 registered here, due to lifecycle constraints related to @Configuration
 class processing.
 
The default implementation is empty.
importingClassMetadata - annotation metadata of the importing classregistry - current bean definition registry