# Uses of Interface
org.springframework.beans.factory.config.BeanDefinition

Packages that use BeanDefinition
Package
Description
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.

## Uses of BeanDefinition in org.springframework.beans.factory.annotation

Subinterfaces of BeanDefinition in org.springframework.beans.factory.annotation
Modifier and Type
Interface
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 BeanDefinition
Modifier and Type
Class
Description
`class`
`AnnotatedGenericBeanDefinition`
Extension of the `GenericBeanDefinition` class, adding support for annotation metadata exposed through the `AnnotatedBeanDefinition` interface.

## Uses of BeanDefinition in org.springframework.beans.factory.config

Methods in org.springframework.beans.factory.config that return BeanDefinition
Modifier and Type
Method
Description
`BeanDefinition`
BeanDefinitionHolder.`getBeanDefinition()`
Return the wrapped BeanDefinition.
`BeanDefinition`
ConfigurableListableBeanFactory.`getBeanDefinition(String beanName)`
Return the registered BeanDefinition for the specified bean, allowing access to its property values and constructor argument value (which can be modified during bean factory post-processing).
`BeanDefinition`
ConfigurableBeanFactory.`getMergedBeanDefinition(String beanName)`
Return a merged BeanDefinition for the given bean name, merging a child bean definition with its parent if necessary.
`BeanDefinition`
BeanDefinition.`getOriginatingBeanDefinition()`
Return the originating BeanDefinition, or `null` if none.
Methods in org.springframework.beans.factory.config with parameters of type BeanDefinition
Modifier and Type
Method
Description
`void`
BeanDefinitionCustomizer.`customize(BeanDefinition bd)`
Customize the given bean definition.
`protected void`
DeprecatedBeanWarner.`logDeprecatedBean(String beanName, Class<?> beanType, BeanDefinition beanDefinition)`
Logs a warning for a bean annotated with `@Deprecated`.
`protected void`
BeanDefinitionVisitor.`visitBeanClassName(BeanDefinition beanDefinition)`
`void`
BeanDefinitionVisitor.`visitBeanDefinition(BeanDefinition beanDefinition)`
Traverse the given BeanDefinition object and the MutablePropertyValues and ConstructorArgumentValues contained in them.
`protected void`
BeanDefinitionVisitor.`visitFactoryBeanName(BeanDefinition beanDefinition)`
`protected void`
BeanDefinitionVisitor.`visitFactoryMethodName(BeanDefinition beanDefinition)`
`protected void`
BeanDefinitionVisitor.`visitParentName(BeanDefinition beanDefinition)`
`protected void`
BeanDefinitionVisitor.`visitScope(BeanDefinition beanDefinition)`
Constructors in org.springframework.beans.factory.config with parameters of type BeanDefinition
Modifier
Constructor
Description
``
`BeanDefinitionHolder(BeanDefinition beanDefinition, String beanName)`
Create a new BeanDefinitionHolder.
``
`BeanDefinitionHolder(BeanDefinition beanDefinition, String beanName, String[] aliases)`
Create a new BeanDefinitionHolder.

## Uses of BeanDefinition in org.springframework.beans.factory.parsing

Methods in org.springframework.beans.factory.parsing that return BeanDefinition
Modifier and Type
Method
Description
`BeanDefinition[]`
AbstractComponentDefinition.`getBeanDefinitions()`
Returns an empty array.
`BeanDefinition[]`
BeanComponentDefinition.`getBeanDefinitions()`
`BeanDefinition[]`
ComponentDefinition.`getBeanDefinitions()`
Return the `BeanDefinitions` that were registered to form this `ComponentDefinition`.
`BeanDefinition[]`
AbstractComponentDefinition.`getInnerBeanDefinitions()`
Returns an empty array.
`BeanDefinition[]`
BeanComponentDefinition.`getInnerBeanDefinitions()`
`BeanDefinition[]`
ComponentDefinition.`getInnerBeanDefinitions()`
Return the `BeanDefinitions` that represent all relevant inner beans within this component.
Constructors in org.springframework.beans.factory.parsing with parameters of type BeanDefinition
Modifier
Constructor
Description
``
`BeanComponentDefinition(BeanDefinition beanDefinition, String beanName)`
Create a new BeanComponentDefinition for the given bean.
``
`BeanComponentDefinition(BeanDefinition beanDefinition, String beanName, String[] aliases)`
Create a new BeanComponentDefinition for the given bean.

## Uses of BeanDefinition in org.springframework.beans.factory.support

Classes in org.springframework.beans.factory.support that implement BeanDefinition
Modifier and Type
Class
Description
`class`
`AbstractBeanDefinition`
Base class for concrete, full-fledged `BeanDefinition` classes, factoring out common properties of `GenericBeanDefinition`, `RootBeanDefinition`, and `ChildBeanDefinition`.
`class`
`ChildBeanDefinition`
Bean definition for beans which inherit settings from their parent.
`class`
`GenericBeanDefinition`
GenericBeanDefinition is a one-stop shop for declarative bean definition purposes.
`class`
`RootBeanDefinition`
A root bean definition represents the merged bean definition at runtime that backs a specific bean in a Spring BeanFactory.
Methods in org.springframework.beans.factory.support that return BeanDefinition
Modifier and Type
Method
Description
`protected abstract BeanDefinition`
AbstractBeanFactory.`getBeanDefinition(String beanName)`
Return the bean definition for the given bean name.
`BeanDefinition`
BeanDefinitionOverrideException.`getBeanDefinition()`
Return the newly registered bean definition.
`BeanDefinition`
BeanDefinitionRegistry.`getBeanDefinition(String beanName)`
Return the BeanDefinition for the given bean name.
`BeanDefinition`
DefaultListableBeanFactory.`getBeanDefinition(String beanName)`
`BeanDefinition`
SimpleBeanDefinitionRegistry.`getBeanDefinition(String beanName)`
`BeanDefinition`
BeanDefinitionOverrideException.`getExistingDefinition()`
Return the existing bean definition for the same name.
`BeanDefinition`
AbstractBeanFactory.`getMergedBeanDefinition(String name)`
Return a 'merged' BeanDefinition for the given bean name, merging a child bean definition with its parent if necessary.
`BeanDefinition`
AbstractBeanDefinition.`getOriginatingBeanDefinition()`
Return the originating BeanDefinition, or `null` if none.
Methods in org.springframework.beans.factory.support with parameters of type BeanDefinition
Modifier and Type
Method
Description
`protected void`
AbstractAutowireCapableBeanFactory.`applyPropertyValues(String beanName, BeanDefinition mbd, BeanWrapper bw, PropertyValues pvs)`
Apply the given property values, resolving any runtime references to other beans in this bean factory.
`protected Object`
AbstractBeanFactory.`evaluateBeanDefinitionString(String value, BeanDefinition beanDefinition)`
Evaluate the given String as contained in a bean definition, potentially resolving it as an expression.
`static String`
BeanDefinitionReaderUtils.`generateBeanName(BeanDefinition beanDefinition, BeanDefinitionRegistry registry)`
Generate a bean name for the given top-level bean definition, unique within the given bean factory.
`static String`
BeanDefinitionReaderUtils.`generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry, boolean isInnerBean)`
Generate a bean name for the given bean definition, unique within the given bean factory.
`String`
BeanNameGenerator.`generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry)`
Generate a bean name for the given bean definition.
`String`
DefaultBeanNameGenerator.`generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry)`
`protected RootBeanDefinition`
AbstractBeanFactory.`getMergedBeanDefinition(String beanName, BeanDefinition bd)`
Return a RootBeanDefinition for the given top-level bean, by merging with the parent if the given bean's definition is a child bean definition.
`protected RootBeanDefinition`
AbstractBeanFactory.`getMergedBeanDefinition(String beanName, BeanDefinition bd, BeanDefinition containingBd)`
Return a RootBeanDefinition for the given bean, by merging with the parent if the given bean's definition is a child bean definition.
`static RegisteredBean`
RegisteredBean.`ofInnerBean(RegisteredBean parent, String innerBeanName, BeanDefinition innerBeanDefinition)`
Create a new `RegisteredBean` instance for an inner-bean.
`static RegisteredBean`
RegisteredBean.`ofInnerBean(RegisteredBean parent, BeanDefinition innerBeanDefinition)`
Create a new `RegisteredBean` instance for an inner-bean.
`void`
AbstractBeanDefinition.`overrideFrom(BeanDefinition other)`
Override settings in this bean definition (presumably a copied parent from a parent-child inheritance relationship) from the given bean definition (presumably the child).
`void`
BeanDefinitionRegistry.`registerBeanDefinition(String beanName, BeanDefinition beanDefinition)`
Register a new bean definition with this registry.
`void`
DefaultListableBeanFactory.`registerBeanDefinition(String beanName, BeanDefinition beanDefinition)`
`void`
SimpleBeanDefinitionRegistry.`registerBeanDefinition(String beanName, BeanDefinition beanDefinition)`
`<T> T`
BeanDefinitionValueResolver.`resolveInnerBean(String innerBeanName, BeanDefinition innerBd, BiFunction<String,RootBeanDefinition,T> resolver)`
Resolve an inner bean definition and invoke the specified `resolver` on its merged bean definition.
`void`
AbstractBeanDefinition.`setOriginatingBeanDefinition(BeanDefinition originatingBd)`
Set the originating (for example, decorated) BeanDefinition, if any.
Constructors in org.springframework.beans.factory.support with parameters of type BeanDefinition
Modifier
Constructor
Description
`protected`
`AbstractBeanDefinition(BeanDefinition original)`
Create a new AbstractBeanDefinition as a deep copy of the given bean definition.
``
`BeanDefinitionOverrideException(String beanName, BeanDefinition beanDefinition, BeanDefinition existingDefinition)`
Create a new BeanDefinitionOverrideException for the given new and existing definition.
``
`BeanDefinitionOverrideException(String beanName, BeanDefinition beanDefinition, BeanDefinition existingDefinition, String msg)`
Create a new BeanDefinitionOverrideException for the given new and existing definition.
``
`BeanDefinitionValueResolver(AbstractAutowireCapableBeanFactory beanFactory, String beanName, BeanDefinition beanDefinition)`
Create a BeanDefinitionValueResolver for the given BeanFactory and BeanDefinition using a default `TypeConverter`.
``
`BeanDefinitionValueResolver(AbstractAutowireCapableBeanFactory beanFactory, String beanName, BeanDefinition beanDefinition, TypeConverter typeConverter)`
Create a BeanDefinitionValueResolver for the given BeanFactory and BeanDefinition, using the given `TypeConverter`.
``
`GenericBeanDefinition(BeanDefinition original)`
Create a new GenericBeanDefinition as deep copy of the given bean definition.

## Uses of BeanDefinition in org.springframework.beans.factory.xml

Methods in org.springframework.beans.factory.xml that return BeanDefinition
Modifier and Type
Method
Description
`BeanDefinition`
ParserContext.`getContainingBeanDefinition()`
`final BeanDefinition`
AbstractBeanDefinitionParser.`parse(Element element, ParserContext parserContext)`
`BeanDefinition`
BeanDefinitionParser.`parse(Element element, ParserContext parserContext)`
Parse the specified `Element` and register the resulting `BeanDefinition(s)` with the `BeanDefinitionRegistry` embedded in the supplied `ParserContext`.
`BeanDefinition`
NamespaceHandler.`parse(Element element, ParserContext parserContext)`
Parse the specified `Element` and register any resulting `BeanDefinitions` with the `BeanDefinitionRegistry` that is embedded in the supplied `ParserContext`.
`BeanDefinition`
NamespaceHandlerSupport.`parse(Element element, ParserContext parserContext)`
Parses the supplied `Element` by delegating to the `BeanDefinitionParser` that is registered for that `Element`.
`BeanDefinition`
SimpleConstructorNamespaceHandler.`parse(Element element, ParserContext parserContext)`
`BeanDefinition`
SimplePropertyNamespaceHandler.`parse(Element element, ParserContext parserContext)`
`BeanDefinition`
BeanDefinitionParserDelegate.`parseCustomElement(Element ele)`
Parse a custom element (outside the default namespace).
`BeanDefinition`
BeanDefinitionParserDelegate.`parseCustomElement(Element ele, BeanDefinition containingBd)`
Parse a custom element (outside the default namespace).
Methods in org.springframework.beans.factory.xml with parameters of type BeanDefinition
Modifier and Type
Method
Description
`BeanDefinitionHolder`
BeanDefinitionParserDelegate.`decorateBeanDefinitionIfRequired(Element ele, BeanDefinitionHolder originalDef, BeanDefinition containingBd)`
Decorate the given bean definition through a namespace handler, if applicable.
`BeanDefinitionHolder`
BeanDefinitionParserDelegate.`decorateIfRequired(Node node, BeanDefinitionHolder originalDef, BeanDefinition containingBd)`
Decorate the given bean definition through a namespace handler, if applicable.
`String`
XmlReaderContext.`generateBeanName(BeanDefinition beanDefinition)`
Call the bean name generator for the given bean definition.
`Object`
BeanDefinitionParserDelegate.`parseArrayElement(Element arrayEle, BeanDefinition bd)`
Parse an array element.
`AbstractBeanDefinition`
BeanDefinitionParserDelegate.`parseBeanDefinitionAttributes(Element ele, String beanName, BeanDefinition containingBean, AbstractBeanDefinition bd)`
Apply the attributes of the given bean element to the given bean * definition.
`AbstractBeanDefinition`
BeanDefinitionParserDelegate.`parseBeanDefinitionElement(Element ele, String beanName, BeanDefinition containingBean)`
Parse the bean definition itself, without regard to name or aliases.
`BeanDefinitionHolder`
BeanDefinitionParserDelegate.`parseBeanDefinitionElement(Element ele, BeanDefinition containingBean)`
Parses the supplied `<bean>` element.
`protected void`
BeanDefinitionParserDelegate.`parseCollectionElements(NodeList elementNodes, Collection<Object> target, BeanDefinition bd, String defaultElementType)`
`void`
BeanDefinitionParserDelegate.`parseConstructorArgElement(Element ele, BeanDefinition bd)`
Parse a constructor-arg element.
`void`
BeanDefinitionParserDelegate.`parseConstructorArgElements(Element beanEle, BeanDefinition bd)`
Parse constructor-arg sub-elements of the given bean element.
`BeanDefinition`
BeanDefinitionParserDelegate.`parseCustomElement(Element ele, BeanDefinition containingBd)`
Parse a custom element (outside the default namespace).
`protected Object`
BeanDefinitionParserDelegate.`parseKeyElement(Element keyEle, BeanDefinition bd, String defaultKeyTypeName)`
Parse a key sub-element of a map element.
`List<Object>`
BeanDefinitionParserDelegate.`parseListElement(Element collectionEle, BeanDefinition bd)`
Parse a list element.
`Map<Object,Object>`
BeanDefinitionParserDelegate.`parseMapElement(Element mapEle, BeanDefinition bd)`
Parse a map element.
`void`
BeanDefinitionParserDelegate.`parsePropertyElement(Element ele, BeanDefinition bd)`
Parse a property element.
`void`
BeanDefinitionParserDelegate.`parsePropertyElements(Element beanEle, BeanDefinition bd)`
Parse property sub-elements of the given bean element.
`Object`
BeanDefinitionParserDelegate.`parsePropertySubElement(Element ele, BeanDefinition bd)`
Parse a value, ref or collection sub-element of a property or constructor-arg element.
`Object`
BeanDefinitionParserDelegate.`parsePropertySubElement(Element ele, BeanDefinition bd, String defaultValueType)`
Parse a value, ref or collection sub-element of a property or constructor-arg element.
`Object`
BeanDefinitionParserDelegate.`parsePropertyValue(Element ele, BeanDefinition bd, String propertyName)`
Get the value of a property element.
`Set<Object>`
BeanDefinitionParserDelegate.`parseSetElement(Element collectionEle, BeanDefinition bd)`
Parse a set element.
`String`
XmlReaderContext.`registerWithGeneratedName(BeanDefinition beanDefinition)`
Call the bean name generator for the given bean definition and register the bean definition under the generated name.
Constructors in org.springframework.beans.factory.xml with parameters of type BeanDefinition
Modifier
Constructor
Description
``
`ParserContext(XmlReaderContext readerContext, BeanDefinitionParserDelegate delegate, BeanDefinition containingBeanDefinition)`