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