org.springframework.beans.factory.support

## 类 BeanDefinitionBuilder

- java.lang.Object
- - org.springframework.beans.factory.support.BeanDefinitionBuilder

-     public class BeanDefinitionBuilder
      extends Object

  Programmatic means of constructing `BeanDefinitions` using the builder pattern. Intended primarily for use when implementing Spring 2.0 `NamespaceHandlers`.
  从以下版本开始:
    2.0
  作者:
    Rod Johnson, Rob Harrop, Juergen Hoeller

- - ### 方法概要

    所有方法 静态方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `BeanDefinitionBuilder` | `addConstructorArgReference(String beanName)` Add a reference to a named bean as a constructor arg.
    `BeanDefinitionBuilder` | `addConstructorArgValue(Object value)` Add an indexed constructor arg value.
    `BeanDefinitionBuilder` | `addDependsOn(String beanName)` Append the specified bean name to the list of beans that this definition depends on.
    `BeanDefinitionBuilder` | `addPropertyReference(String name, String beanName)` Add a reference to the specified bean name under the property specified.
    `BeanDefinitionBuilder` | `addPropertyValue(String name, Object value)` Add the supplied property value under the given property name.
    `BeanDefinitionBuilder` | `applyCustomizers(BeanDefinitionCustomizer... customizers)` Apply the given customizers to the underlying bean definition.
    `static BeanDefinitionBuilder` | `childBeanDefinition(String parentName)` Create a new `BeanDefinitionBuilder` used to construct a `ChildBeanDefinition`.
    `static BeanDefinitionBuilder` | `genericBeanDefinition()` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static BeanDefinitionBuilder` | `genericBeanDefinition(Class<?> beanClass)` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static <T> BeanDefinitionBuilder` | `genericBeanDefinition(Class<T> beanClass, Supplier<T> instanceSupplier)` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `static BeanDefinitionBuilder` | `genericBeanDefinition(String beanClassName)` Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
    `AbstractBeanDefinition` | `getBeanDefinition()` Validate and return the created BeanDefinition object.
    `AbstractBeanDefinition` | `getRawBeanDefinition()` Return the current BeanDefinition object in its raw (unvalidated) form.
    `static BeanDefinitionBuilder` | `rootBeanDefinition(Class<?> beanClass)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `static BeanDefinitionBuilder` | `rootBeanDefinition(Class<?> beanClass, String factoryMethodName)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `static BeanDefinitionBuilder` | `rootBeanDefinition(String beanClassName)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `static BeanDefinitionBuilder` | `rootBeanDefinition(String beanClassName, String factoryMethodName)` Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
    `BeanDefinitionBuilder` | `setAbstract(boolean flag)` Set whether or not this definition is abstract.
    `BeanDefinitionBuilder` | `setAutowireMode(int autowireMode)` Set the autowire mode for this definition.
    `BeanDefinitionBuilder` | `setDependencyCheck(int dependencyCheck)` Set the dependency check mode for this definition.
    `BeanDefinitionBuilder` | `setDestroyMethodName(String methodName)` Set the destroy method for this definition.
    `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` | `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` | `setInitMethodName(String methodName)` Set the init method for this definition.
    `BeanDefinitionBuilder` | `setLazyInit(boolean lazy)` Set whether beans for this definition should be lazily initialized or not.
    `BeanDefinitionBuilder` | `setParentName(String parentName)` Set the name of the parent definition of this bean definition.
    `BeanDefinitionBuilder` | `setRole(int role)` Set the role of this definition.
    `BeanDefinitionBuilder` | `setScope(String scope)` Set the scope of this definition.

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 方法详细资料

    - #### genericBeanDefinition

          public static BeanDefinitionBuilder genericBeanDefinition()

      Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.

    - #### genericBeanDefinition

          public static BeanDefinitionBuilder genericBeanDefinition(String beanClassName)

      Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
      参数:
        `beanClassName` - the class name for the bean that the definition is being created for

    - #### genericBeanDefinition

          public static BeanDefinitionBuilder genericBeanDefinition(Class<?> beanClass)

      Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
      参数:
        `beanClass` - the `Class` of the bean that the definition is being created for

    - #### genericBeanDefinition

          public static <T> BeanDefinitionBuilder genericBeanDefinition(Class<T> beanClass,
                                                                        Supplier<T> instanceSupplier)

      Create a new `BeanDefinitionBuilder` used to construct a `GenericBeanDefinition`.
      参数:
        `beanClass` - the `Class` of the bean that the definition is being created for
        `instanceSupplier` - a callback for creating an instance of the bean
      从以下版本开始:
        5.0

    - #### rootBeanDefinition

          public static BeanDefinitionBuilder rootBeanDefinition(String beanClassName)

      Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
      参数:
        `beanClassName` - the class name for the bean that the definition is being created for

    - #### rootBeanDefinition

          public static BeanDefinitionBuilder rootBeanDefinition(String beanClassName,
                                                                 @Nullable
                                                                 String factoryMethodName)

      Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
      参数:
        `beanClassName` - the class name for the bean that the definition is being created for
        `factoryMethodName` - the name of the method to use to construct the bean instance

    - #### rootBeanDefinition

          public static BeanDefinitionBuilder rootBeanDefinition(Class<?> beanClass)

      Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
      参数:
        `beanClass` - the `Class` of the bean that the definition is being created for

    - #### rootBeanDefinition

          public static BeanDefinitionBuilder rootBeanDefinition(Class<?> beanClass,
                                                                 @Nullable
                                                                 String factoryMethodName)

      Create a new `BeanDefinitionBuilder` used to construct a `RootBeanDefinition`.
      参数:
        `beanClass` - the `Class` of the bean that the definition is being created for
        `factoryMethodName` - the name of the method to use to construct the bean instance

    - #### childBeanDefinition

          public static BeanDefinitionBuilder childBeanDefinition(String parentName)

      Create a new `BeanDefinitionBuilder` used to construct a `ChildBeanDefinition`.
      参数:
        `parentName` - the name of the parent bean

    - #### getRawBeanDefinition

          public AbstractBeanDefinition getRawBeanDefinition()

      Return the current BeanDefinition object in its raw (unvalidated) form.
      另请参阅:
        `getBeanDefinition()`

    - #### getBeanDefinition

          public AbstractBeanDefinition getBeanDefinition()

      Validate and return the created BeanDefinition object.

    - #### setParentName

          public BeanDefinitionBuilder setParentName(String parentName)

      Set the name of the parent definition of this bean definition.

    - #### setFactoryMethod

          public 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.

    - #### setFactoryMethodOnBean

          public 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.
      参数:
        `factoryMethod` - the name of the factory method
        `factoryBean` - the name of the bean to call the specified factory method on
      从以下版本开始:
        4.3.6

    - #### addConstructorArgValue

          public BeanDefinitionBuilder addConstructorArgValue(@Nullable
                                                              Object value)

      Add an indexed constructor arg value. The current index is tracked internally and all additions are at the present point.

    - #### addConstructorArgReference

          public BeanDefinitionBuilder addConstructorArgReference(String beanName)

      Add a reference to a named bean as a constructor arg.
      另请参阅:
        `addConstructorArgValue(Object)`

    - #### addPropertyValue

          public BeanDefinitionBuilder addPropertyValue(String name,
                                                        @Nullable
                                                        Object value)

      Add the supplied property value under the given property name.

    - #### addPropertyReference

          public BeanDefinitionBuilder addPropertyReference(String name,
                                                            String beanName)

      Add a reference to the specified bean name under the property specified.
      参数:
        `name` - the name of the property to add the reference to
        `beanName` - the name of the bean being referenced

    - #### setInitMethodName

          public BeanDefinitionBuilder setInitMethodName(@Nullable
                                                         String methodName)

      Set the init method for this definition.

    - #### setDestroyMethodName

          public BeanDefinitionBuilder setDestroyMethodName(@Nullable
                                                            String methodName)

      Set the destroy method for this definition.

    - #### setScope

          public BeanDefinitionBuilder setScope(@Nullable
                                                String scope)

      Set the scope of this definition.
      另请参阅:
        `BeanDefinition.SCOPE_SINGLETON`, `BeanDefinition.SCOPE_PROTOTYPE`

    - #### setAbstract

          public BeanDefinitionBuilder setAbstract(boolean flag)

      Set whether or not this definition is abstract.

    - #### setLazyInit

          public BeanDefinitionBuilder setLazyInit(boolean lazy)

      Set whether beans for this definition should be lazily initialized or not.

    - #### setAutowireMode

          public BeanDefinitionBuilder setAutowireMode(int autowireMode)

      Set the autowire mode for this definition.

    - #### setDependencyCheck

          public BeanDefinitionBuilder setDependencyCheck(int dependencyCheck)

      Set the dependency check mode for this definition.

    - #### addDependsOn

          public BeanDefinitionBuilder addDependsOn(String beanName)

      Append the specified bean name to the list of beans that this definition depends on.

    - #### setRole

          public BeanDefinitionBuilder setRole(int role)

      Set the role of this definition.

    - #### applyCustomizers

          public BeanDefinitionBuilder applyCustomizers(BeanDefinitionCustomizer... customizers)

      Apply the given customizers to the underlying bean definition.
      从以下版本开始:
        5.0