## 类的使用
org.springframework.beans.factory.support.BeanDefinitionBuilder

- 使用BeanDefinitionBuilder的程序包
  程序包 | 说明
  --- | ---
  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.beans.factory.support中BeanDefinitionBuilder的使用

    返回BeanDefinitionBuilder的org.springframework.beans.factory.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`addConstructorArgReference(String beanName)` Add a reference to a named bean as a constructor arg.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`addConstructorArgValue(Object value)` Add an indexed constructor arg value.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`addDependsOn(String beanName)` Append the specified bean name to the list of beans that this definition depends on.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`addPropertyReference(String name, String beanName)` Add a reference to the specified bean name under the property specified.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`addPropertyValue(String name, Object value)` Add the supplied property value under the given property name.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`applyCustomizers(BeanDefinitionCustomizer... customizers)` Apply the given customizers to the underlying bean definition.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`childBeanDefinition(String parentName)` Create a new `BeanDefinitionBuilder` used to construct a `ChildBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`genericBeanDefinition()` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`genericBeanDefinition(Class<?> beanClass)` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static <T> BeanDefinitionBuilder` | BeanDefinitionBuilder.`genericBeanDefinition(Class<T> beanClass, Supplier<T> instanceSupplier)` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`genericBeanDefinition(String beanClassName)` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`rootBeanDefinition(Class<?> beanClass)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`rootBeanDefinition(Class<?> beanClass, String factoryMethodName)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`rootBeanDefinition(String beanClassName)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `static BeanDefinitionBuilder` | BeanDefinitionBuilder.`rootBeanDefinition(String beanClassName, String factoryMethodName)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setAbstract(boolean flag)` Set whether or not this definition is abstract.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setAutowireMode(int autowireMode)` Set the autowire mode for this definition.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setDependencyCheck(int dependencyCheck)` Set the dependency check mode for this definition.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setDestroyMethodName(String methodName)` Set the destroy method for this definition.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setFactoryMethod(String factoryMethod)` Set the name of a static factory method to use for this definition, to be called on this bean's class.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setFactoryMethodOnBean(String factoryMethod, String factoryBean)` Set the name of a non-static factory method to use for this definition, including the bean name of the factory instance to call the method on.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setInitMethodName(String methodName)` Set the init method for this definition.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setLazyInit(boolean lazy)` Set whether beans for this definition should be lazily initialized or not.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setParentName(String parentName)` Set the name of the parent definition of this bean definition.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setRole(int role)` Set the role of this definition.
    `BeanDefinitionBuilder` | BeanDefinitionBuilder.`setScope(String scope)` Set the scope of this definition.

  - ### org.springframework.beans.factory.xml中BeanDefinitionBuilder的使用

    参数类型为BeanDefinitionBuilder的org.springframework.beans.factory.xml中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected void` | AbstractSingleBeanDefinitionParser.`doParse(Element element, BeanDefinitionBuilder builder)` Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.
    `protected void` | AbstractSimpleBeanDefinitionParser.`doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)` Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.
    `protected void` | AbstractSingleBeanDefinitionParser.`doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder)` Parse the supplied `Element` and populate the supplied `BeanDefinitionBuilder` as required.
    `protected void` | AbstractSimpleBeanDefinitionParser.`postProcess(BeanDefinitionBuilder beanDefinition, Element element)` Hook method that derived classes can implement to inspect/change a bean definition after parsing is complete.