org.springframework.context.annotation

## Interface ImportBeanDefinitionRegistrar

- All Known Implementing Classes:
    AutoProxyRegistrar

      public interface ImportBeanDefinitionRegistrar

  Interface to be implemented by types that register additional bean definitions when processing @`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)`:

  - `BeanFactoryAware`
  - `BeanClassLoaderAware`
  - `ResourceLoaderAware`

  See implementations and associated unit tests for usage examples.

  Since:
    3.1
  Author:
    Chris Beams
  See Also:
    `Import`, `ImportSelector`, `Configuration`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry)` Register bean definitions as necessary based on the given annotation metadata of the importing `@Configuration` class.

- - ### Method Detail

    - #### registerBeanDefinitions

          void registerBeanDefinitions(AnnotationMetadata importingClassMetadata,
                                     BeanDefinitionRegistry registry)

      Register bean definitions as necessary based on the given annotation metadata of the importing `@Configuration` class.

      Note that `BeanDefinitionRegistryPostProcessor` types may not be registered here, due to lifecycle constraints related to `@Configuration` class processing.

      Parameters:
        `importingClassMetadata` - annotation metadata of the importing class
        `registry` - current bean definition registry