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):
Alternatively, the class may provide a single constructor with one or more of the following supported parameter types:
See implementations and associated unit tests for usage examples.
Import,
ImportSelector,
Configuration| Modifier and Type | Method and Description |
|---|---|
default void |
registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
BeanDefinitionRegistry registry)
Register bean definitions as necessary based on the given annotation metadata of
the importing
@Configuration class. |
default void |
registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
BeanDefinitionRegistry registry,
BeanNameGenerator importBeanNameGenerator)
Register bean definitions as necessary based on the given annotation metadata of
the importing
@Configuration class. |
default void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry, 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(AnnotationMetadata importingClassMetadata, 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