## org.springframework.beans.factory.support
Class 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`.

Since:
  2.0
Author:
  Rod Johnson, Rob Harrop, Juergen Hoeller

Method Summary
`BeanDefinitionBuilder` `addConstructorArg(Object value)` Deprecated. since Spring 2.5, in favor of `addConstructorArgValue(java.lang.Object)`
`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 name.
`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 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 depency check mode for this definition.
`BeanDefinitionBuilder` `setDestroyMethodName(String methodName)` Set the destroy method for this definition.
`BeanDefinitionBuilder` `setFactoryBean(String factoryBean, String factoryMethod)` Deprecated. since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`
`BeanDefinitionBuilder` `setFactoryMethod(String factoryMethod)` Set the name of the factory method to use for this definition.
`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` `setResourceDescription(String resourceDescription)` Deprecated. since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`
`BeanDefinitionBuilder` `setRole(int role)` Set the role of this definition.
`BeanDefinitionBuilder` `setScope(String scope)` Set the scope of this definition.
`BeanDefinitionBuilder` `setSingleton(boolean singleton)` Deprecated. since Spring 2.5, in favor of `setScope(java.lang.String)`
`BeanDefinitionBuilder` `setSource(Object source)` Deprecated. since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### genericBeanDefinition

    public static BeanDefinitionBuilder genericBeanDefinition()

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

### genericBeanDefinition

    public static BeanDefinitionBuilder genericBeanDefinition(Class beanClass)

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

  Parameters:
    `beanClass` - the `Class` of the bean that the definition is being created for

### genericBeanDefinition

    public static BeanDefinitionBuilder genericBeanDefinition(String beanClassName)

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

  Parameters:
    `beanClassName` - the class name for the bean that the definition is being created for

### rootBeanDefinition

    public static BeanDefinitionBuilder rootBeanDefinition(Class beanClass)

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

  Parameters:
    `beanClass` - the `Class` of the bean that the definition is being created for

### rootBeanDefinition

    public static BeanDefinitionBuilder rootBeanDefinition(Class beanClass,
                                                           String factoryMethodName)

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

  Parameters:
    `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

### rootBeanDefinition

    public static BeanDefinitionBuilder rootBeanDefinition(String beanClassName)

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

  Parameters:
    `beanClassName` - the class name for the bean that the definition is being created for

### rootBeanDefinition

    public static BeanDefinitionBuilder rootBeanDefinition(String beanClassName,
                                                           String factoryMethodName)

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

  Parameters:
    `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

### childBeanDefinition

    public static BeanDefinitionBuilder childBeanDefinition(String parentName)

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

  Parameters:
    `parentName` - the name of the parent bean

### getRawBeanDefinition

    public AbstractBeanDefinition getRawBeanDefinition()

  Return the current BeanDefinition object in its raw (unvalidated) form.

  See Also:
    `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 the factory method to use for this definition.

### setFactoryBean

    @Deprecated
    public BeanDefinitionBuilder setFactoryBean(String factoryBean,
                                                           String factoryMethod)

  Deprecated. since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`

  Set the name of the factory bean to use for this definition.

### addConstructorArg

    @Deprecated
    public BeanDefinitionBuilder addConstructorArg(Object value)

  Deprecated. since Spring 2.5, in favor of `addConstructorArgValue(java.lang.Object)`

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

### addConstructorArgValue

    public BeanDefinitionBuilder addConstructorArgValue(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.

  See Also:
    `addConstructorArgValue(Object)`

### addPropertyValue

    public BeanDefinitionBuilder addPropertyValue(String name,
                                                  Object value)

  Add the supplied property value under the given name.

### addPropertyReference

    public BeanDefinitionBuilder addPropertyReference(String name,
                                                      String beanName)

  Add a reference to the specified bean name under the property specified.

  Parameters:
    `name` - the name of the property to add the reference to
    `beanName` - the name of the bean being referenced

### setInitMethodName

    public BeanDefinitionBuilder setInitMethodName(String methodName)

  Set the init method for this definition.

### setDestroyMethodName

    public BeanDefinitionBuilder setDestroyMethodName(String methodName)

  Set the destroy method for this definition.

### setScope

    public BeanDefinitionBuilder setScope(String scope)

  Set the scope of this definition.

  See Also:
    `BeanDefinition.SCOPE_SINGLETON`, `BeanDefinition.SCOPE_PROTOTYPE`

### setSingleton

    @Deprecated
    public BeanDefinitionBuilder setSingleton(boolean singleton)

  Deprecated. since Spring 2.5, in favor of `setScope(java.lang.String)`

  Set whether or not this definition describes a singleton bean, as alternative to `setScope(java.lang.String)`.

### 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 depency 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.

### setSource

    @Deprecated
    public BeanDefinitionBuilder setSource(Object source)

  Deprecated. since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`

  Set the source of this definition.

### setResourceDescription

    @Deprecated
    public BeanDefinitionBuilder setResourceDescription(String resourceDescription)

  Deprecated. since Spring 2.5, in favor of preparing this on the `raw BeanDefinition object`

  Set the description associated with this definition.