## Uses of Interface
org.springframework.beans.BeanMetadataElement

- Packages that use BeanMetadataElement
  Package | Description
  --- | ---
  org.springframework.aop.config | Support package for declarative AOP configuration, with XML schema being the primary configuration format.
  org.springframework.beans | This package contains interfaces and classes for manipulating Java beans.
  org.springframework.beans.factory.annotation | Support package for annotation-driven bean configuration.
  org.springframework.beans.factory.config | SPI interfaces and configuration-related convenience classes for bean factories.
  org.springframework.beans.factory.parsing | Support infrastructure for bean definition parsing.
  org.springframework.beans.factory.support | Classes supporting the `org.springframework.beans.factory` package.
  org.springframework.beans.factory.xml | Contains an abstract XML-based `BeanFactory` implementation, including a standard "spring-beans" XSD.
  org.springframework.context.annotation | Annotation support for the Application Context, including JSR-250 "common" annotations, component-scanning, and Java-based metadata for creating Spring-managed objects.

- - ### Uses of BeanMetadataElement in org.springframework.aop.config

    Classes in org.springframework.aop.config that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AdvisorComponentDefinition` `ComponentDefinition` that bridges the gap between the advisor bean definition configured by the `<aop:advisor>` tag and the component definition infrastructure.
    `class` | `AspectComponentDefinition` `ComponentDefinition` that holds an aspect definition, including its nested pointcuts.
    `class` | `PointcutComponentDefinition` `ComponentDefinition` implementation that holds a pointcut definition.

  - ### Uses of BeanMetadataElement in org.springframework.beans

    Classes in org.springframework.beans that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanMetadataAttribute` Holder for a key-value style attribute that is part of a bean definition.
    `class` | `BeanMetadataAttributeAccessor` Extension of `AttributeAccessorSupport`, holding attributes as `BeanMetadataAttribute` objects in order to keep track of the definition source.
    `class` | `PropertyValue` Object to hold information and value for an individual bean property.

  - ### Uses of BeanMetadataElement in org.springframework.beans.factory.annotation

    Subinterfaces of BeanMetadataElement in org.springframework.beans.factory.annotation
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `AnnotatedBeanDefinition` Extended `BeanDefinition` interface that exposes `AnnotationMetadata` about its bean class - without requiring the class to be loaded yet.

    Classes in org.springframework.beans.factory.annotation that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AnnotatedGenericBeanDefinition` Extension of the `GenericBeanDefinition` class, adding support for annotation metadata exposed through the `AnnotatedBeanDefinition` interface.

  - ### Uses of BeanMetadataElement in org.springframework.beans.factory.config

    Subinterfaces of BeanMetadataElement in org.springframework.beans.factory.config
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `BeanDefinition` A BeanDefinition describes a bean instance, which has property values, constructor argument values, and further information supplied by concrete implementations.
    `interface` | `BeanReference` Interface that exposes a reference to a bean name in an abstract fashion.

    Classes in org.springframework.beans.factory.config that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `BeanDefinitionHolder` Holder for a BeanDefinition with name and aliases.
    `static class` | `ConstructorArgumentValues.ValueHolder` Holder for a constructor argument value, with an optional type attribute indicating the target type of the actual constructor argument.
    `class` | `RuntimeBeanNameReference` Immutable placeholder class used for a property value object when it's a reference to another bean name in the factory, to be resolved at runtime.
    `class` | `RuntimeBeanReference` Immutable placeholder class used for a property value object when it's a reference to another bean in the factory, to be resolved at runtime.
    `class` | `TypedStringValue` Holder for a typed String value.

  - ### Uses of BeanMetadataElement in org.springframework.beans.factory.parsing

    Subinterfaces of BeanMetadataElement in org.springframework.beans.factory.parsing
    Modifier and Type | Interface and Description
    --- | ---
    `interface` | `ComponentDefinition` Interface that describes the logical view of a set of `BeanDefinitions` and `BeanReferences` as presented in some configuration context.
    `interface` | `DefaultsDefinition` Marker interface for a defaults definition, extending BeanMetadataElement to inherit source exposure.

    Classes in org.springframework.beans.factory.parsing that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractComponentDefinition` Base implementation of `ComponentDefinition` that provides a basic implementation of `AbstractComponentDefinition.getDescription()` which delegates to `ComponentDefinition.getName()`.
    `class` | `AliasDefinition` Representation of an alias that has been registered during the parsing process.
    `class` | `BeanComponentDefinition` ComponentDefinition based on a standard BeanDefinition, exposing the given bean definition as well as inner bean definitions and bean references for the given bean.
    `class` | `CompositeComponentDefinition` `ComponentDefinition` implementation that holds one or more nested `ComponentDefinition` instances, aggregating them into a named group of components.
    `class` | `ImportDefinition` Representation of an import that has been processed during the parsing process.

  - ### Uses of BeanMetadataElement in org.springframework.beans.factory.support

    Classes in org.springframework.beans.factory.support that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `AbstractBeanDefinition` Base class for concrete, full-fledged `BeanDefinition` classes, factoring out common properties of `GenericBeanDefinition`, `RootBeanDefinition`, and `ChildBeanDefinition`.
    `class` | `AutowireCandidateQualifier` Qualifier for resolving autowire candidates.
    `class` | `ChildBeanDefinition` Bean definition for beans which inherit settings from their parent.
    `class` | `GenericBeanDefinition` GenericBeanDefinition is a one-stop shop for standard bean definition purposes.
    `class` | `LookupOverride` Represents an override of a method that looks up an object in the same IoC context, either by bean name or by bean type (based on the declared method return type).
    `class` | `ManagedArray` Tag collection class used to hold managed array elements, which may include runtime bean references (to be resolved into bean objects).
    `class` | `ManagedList<E>` Tag collection class used to hold managed List elements, which may include runtime bean references (to be resolved into bean objects).
    `class` | `ManagedMap<K,V>` Tag collection class used to hold managed Map values, which may include runtime bean references (to be resolved into bean objects).
    `class` | `ManagedProperties` Tag class which represents a Spring-managed `Properties` instance that supports merging of parent/child definitions.
    `class` | `ManagedSet<E>` Tag collection class used to hold managed Set values, which may include runtime bean references (to be resolved into bean objects).
    `class` | `MethodOverride` Object representing the override of a method on a managed object by the IoC container.
    `class` | `ReplaceOverride` Extension of `MethodOverride` that represents an arbitrary override of a method by the IoC container.
    `class` | `RootBeanDefinition` A root bean definition represents the merged bean definition that backs a specific bean in a Spring BeanFactory at runtime.

  - ### Uses of BeanMetadataElement in org.springframework.beans.factory.xml

    Classes in org.springframework.beans.factory.xml that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `DocumentDefaultsDefinition` Simple JavaBean that holds the defaults specified at the `<beans>` level in a standard Spring XML bean definition document: `default-lazy-init`, `default-autowire`, etc.

  - ### Uses of BeanMetadataElement in org.springframework.context.annotation

    Classes in org.springframework.context.annotation that implement BeanMetadataElement
    Modifier and Type | Class and Description
    --- | ---
    `class` | `ScannedGenericBeanDefinition` Extension of the `GenericBeanDefinition` class, based on an ASM ClassReader, with support for annotation metadata exposed through the `AnnotatedBeanDefinition` interface.