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

All Superinterfaces:
  AttributeAccessor, BeanMetadataElement

All Known Subinterfaces:
  AnnotatedBeanDefinition

All Known Implementing Classes:
  AbstractBeanDefinition, AnnotatedGenericBeanDefinition, ChildBeanDefinition, GenericBeanDefinition, RootBeanDefinition, ScannedGenericBeanDefinition

    public interface BeanDefinition

extends AttributeAccessor, BeanMetadataElement

A BeanDefinition describes a bean instance, which has property values, constructor argument values, and further information supplied by concrete implementations.

This is just a minimal interface: The main intention is to allow a `BeanFactoryPostProcessor` such as `PropertyPlaceholderConfigurer` to introspect and modify property values and other bean metadata.

Since:
  19.03.2004
Author:
  Juergen Hoeller, Rob Harrop
See Also:
  `ConfigurableListableBeanFactory.getBeanDefinition(java.lang.String)`, `RootBeanDefinition`, `ChildBeanDefinition`

Field Summary
`static int` `ROLE_APPLICATION` Role hint indicating that a `BeanDefinition` is a major part of the application.
`static int` `ROLE_INFRASTRUCTURE` Role hint indicating that a `BeanDefinition` is providing an entirely background role and has no relevance to the end-user.
`static int` `ROLE_SUPPORT` Role hint indicating that a `BeanDefinition` is a supporting part of some larger configuration, typically an outer `ComponentDefinition`.
`static String` `SCOPE_PROTOTYPE` Scope identifier for the standard prototype scope: "prototype".
`static String` `SCOPE_SINGLETON` Scope identifier for the standard singleton scope: "singleton".

Method Summary
`String` `getBeanClassName()` Return the current bean class name of this bean definition.
`ConstructorArgumentValues` `getConstructorArgumentValues()` Return the constructor argument values for this bean.
`String` `getDescription()` Return a human-readable description of this bean definition.
`String` `getFactoryBeanName()` Return the factory bean name, if any.
`String` `getFactoryMethodName()` Return a factory method, if any.
`BeanDefinition` `getOriginatingBeanDefinition()` Return the originating BeanDefinition, or `null` if none.
`String` `getParentName()` Return the name of the parent definition of this bean definition, if any.
`MutablePropertyValues` `getPropertyValues()` Return the property values to be applied to a new instance of the bean.
`String` `getResourceDescription()` Return a description of the resource that this bean definition came from (for the purpose of showing context in case of errors).
`int` `getRole()` Get the role hint for this `BeanDefinition`.
`String` `getScope()` Return the name of the current target scope for this bean.
`boolean` `isAbstract()` Return whether this bean is "abstract", that is, not meant to be instantiated.
`boolean` `isAutowireCandidate()` Return whether this bean is a candidate for getting autowired into some other bean.
`boolean` `isLazyInit()` Return whether this bean should be lazily initialized, that is, not eagerly instantiated on startup.
`boolean` `isSingleton()` Return whether this a Singleton, with a single, shared instance returned on all calls.
`void` `setAutowireCandidate(boolean autowireCandidate)` Set whether this bean is a candidate for getting autowired into some other bean.
`void` `setBeanClassName(String beanClassName)` Override the bean class name of this bean definition.
`void` `setFactoryBeanName(String factoryBeanName)` Specify the factory bean to use, if any.
`void` `setFactoryMethodName(String factoryMethodName)` Specify a factory method, if any.
`void` `setParentName(String parentName)` Set the name of the parent definition of this bean definition, if any.
`void` `setScope(String scope)` Override the target scope of this bean, specifying a new scope name.

Methods inherited from interface org.springframework.core.AttributeAccessor
`attributeNames, getAttribute, hasAttribute, removeAttribute, setAttribute`

Methods inherited from interface org.springframework.beans.BeanMetadataElement
`getSource`

Field Detail

### SCOPE_SINGLETON

    static final String SCOPE_SINGLETON

  Scope identifier for the standard singleton scope: "singleton".

  Note that extended bean factories might support further scopes.

  See Also:
    `setScope(java.lang.String)`, Constant Field Values

### SCOPE_PROTOTYPE

    static final String SCOPE_PROTOTYPE

  Scope identifier for the standard prototype scope: "prototype".

  Note that extended bean factories might support further scopes.

  See Also:
    `setScope(java.lang.String)`, Constant Field Values

### ROLE_APPLICATION

    static final int ROLE_APPLICATION

  Role hint indicating that a `BeanDefinition` is a major part of the application. Typically corresponds to a user-defined bean.

  See Also:
    Constant Field Values

### ROLE_SUPPORT

    static final int ROLE_SUPPORT

  Role hint indicating that a `BeanDefinition` is a supporting part of some larger configuration, typically an outer `ComponentDefinition`. `SUPPORT` beans are considered important enough to be aware of when looking more closely at a particular `ComponentDefinition`, but not when looking at the overall configuration of an application.

  See Also:
    Constant Field Values

### ROLE_INFRASTRUCTURE

    static final int ROLE_INFRASTRUCTURE

  Role hint indicating that a `BeanDefinition` is providing an entirely background role and has no relevance to the end-user. This hint is used when registering beans that are completely part of the internal workings of a `ComponentDefinition`.

  See Also:
    Constant Field Values

Method Detail

### getParentName

    String getParentName()

  Return the name of the parent definition of this bean definition, if any.

### setParentName

    void setParentName(String parentName)

  Set the name of the parent definition of this bean definition, if any.

### getBeanClassName

    String getBeanClassName()

  Return the current bean class name of this bean definition.

  Note that this does not have to be the actual class name used at runtime, in case of a child definition overriding/inheriting the class name from its parent. Hence, do not consider this to be the definitive bean type at runtime but rather only use it for parsing purposes at the individual bean definition level.

### setBeanClassName

    void setBeanClassName(String beanClassName)

  Override the bean class name of this bean definition.

  The class name can be modified during bean factory post-processing, typically replacing the original class name with a parsed variant of it.

### getFactoryBeanName

    String getFactoryBeanName()

  Return the factory bean name, if any.

### setFactoryBeanName

    void setFactoryBeanName(String factoryBeanName)

  Specify the factory bean to use, if any.

### getFactoryMethodName

    String getFactoryMethodName()

  Return a factory method, if any.

### setFactoryMethodName

    void setFactoryMethodName(String factoryMethodName)

  Specify a factory method, if any. This method will be invoked with constructor arguments, or with no arguments if none are specified. The method will be invoked on the specifed factory bean, if any, or as static method on the local bean class else.

  Parameters:
    `factoryMethodName` - static factory method name, or `null` if normal constructor creation should be used
  See Also:
    `getBeanClassName()`

### getScope

    String getScope()

  Return the name of the current target scope for this bean.

### setScope

    void setScope(String scope)

  Override the target scope of this bean, specifying a new scope name.

  See Also:
    `SCOPE_SINGLETON`, `SCOPE_PROTOTYPE`

### isAutowireCandidate

    boolean isAutowireCandidate()

  Return whether this bean is a candidate for getting autowired into some other bean.

### setAutowireCandidate

    void setAutowireCandidate(boolean autowireCandidate)

  Set whether this bean is a candidate for getting autowired into some other bean.

### getConstructorArgumentValues

    ConstructorArgumentValues getConstructorArgumentValues()

  Return the constructor argument values for this bean.

  The returned instance can be modified during bean factory post-processing.

  Returns:
    the ConstructorArgumentValues object (never `null`)

### getPropertyValues

    MutablePropertyValues getPropertyValues()

  Return the property values to be applied to a new instance of the bean.

  The returned instance can be modified during bean factory post-processing.

  Returns:
    the MutablePropertyValues object (never `null`)

### isSingleton

    boolean isSingleton()

  Return whether this a Singleton, with a single, shared instance returned on all calls.

### isAbstract

    boolean isAbstract()

  Return whether this bean is "abstract", that is, not meant to be instantiated.

### isLazyInit

    boolean isLazyInit()

  Return whether this bean should be lazily initialized, that is, not eagerly instantiated on startup.

### getRole

    int getRole()

  Get the role hint for this `BeanDefinition`. The role hint provides tools with an indication of the importance of a particular `BeanDefinition`.

  See Also:
    `ROLE_APPLICATION`, `ROLE_INFRASTRUCTURE`, `ROLE_SUPPORT`

### getDescription

    String getDescription()

  Return a human-readable description of this bean definition.

### getResourceDescription

    String getResourceDescription()

  Return a description of the resource that this bean definition came from (for the purpose of showing context in case of errors).

### getOriginatingBeanDefinition

    BeanDefinition getOriginatingBeanDefinition()

  Return the originating BeanDefinition, or `null` if none. Allows for retrieving the decorated bean definition, if any.

  Note that this method returns the immediate originator. Iterate through the originator chain to find the original BeanDefinition as defined by the user.

Copyright © 2002-2008 The Spring Framework.