org.springframework.beans.factory.support
Class GenericBeanDefinition

java.lang.Object
  extended by org.springframework.core.AttributeAccessorSupport
      extended by org.springframework.beans.BeanMetadataAttributeAccessor
          extended by org.springframework.beans.factory.support.AbstractBeanDefinition
              extended by org.springframework.beans.factory.support.GenericBeanDefinition
All Implemented Interfaces:
Serializable, Cloneable, BeanMetadataElement, BeanDefinition, AttributeAccessor
Direct Known Subclasses:
AnnotatedGenericBeanDefinition, ScannedGenericBeanDefinition

public class GenericBeanDefinition
extends AbstractBeanDefinition

GenericBeanDefinition is a one-stop shop for standard bean definition purposes. Like any bean definition, it allows for specifying a class plus optionally constructor argument values and property values. Additionally, deriving from a parent bean definition can be flexibly configured through the "parentName" property.

In general, use this GenericBeanDefinition class for the purpose of registering user-visible bean definitions (which a post-processor might operate on, potentially even reconfiguring the parent name). Use RootBeanDefinition / ChildBeanDefinition where parent/child relationships happen to be pre-determined.

Since:
2.5
Author:
Juergen Hoeller
See Also:
setParentName(java.lang.String), RootBeanDefinition, ChildBeanDefinition, Serialized Form

Field Summary
 
Fields inherited from class org.springframework.beans.factory.support.AbstractBeanDefinition
AUTOWIRE_AUTODETECT, AUTOWIRE_BY_NAME, AUTOWIRE_BY_TYPE, AUTOWIRE_CONSTRUCTOR, AUTOWIRE_NO, DEPENDENCY_CHECK_ALL, DEPENDENCY_CHECK_NONE, DEPENDENCY_CHECK_OBJECTS, DEPENDENCY_CHECK_SIMPLE, SCOPE_DEFAULT
 
Fields inherited from interface org.springframework.beans.factory.config.BeanDefinition
ROLE_APPLICATION, ROLE_INFRASTRUCTURE, ROLE_SUPPORT, SCOPE_PROTOTYPE, SCOPE_SINGLETON
 
Constructor Summary
GenericBeanDefinition()
          Create a new GenericBeanDefinition, to be configured through its bean properties and configuration methods.
GenericBeanDefinition(BeanDefinition original)
          Create a new GenericBeanDefinition as deep copy of the given bean definition.
 
Method Summary
 AbstractBeanDefinition cloneBeanDefinition()
          Clone this bean definition.
 boolean equals(Object other)
           
 String getParentName()
          Return the name of the parent definition of this bean definition, if any.
 void setParentName(String parentName)
          Set the name of the parent definition of this bean definition, if any.
 String toString()
           
 
Methods inherited from class org.springframework.beans.factory.support.AbstractBeanDefinition
addQualifier, applyDefaults, clone, copyQualifiersFrom, getAutowireMode, getBeanClass, getBeanClassName, getConstructorArgumentValues, getDependencyCheck, getDependsOn, getDescription, getDestroyMethodName, getFactoryBeanName, getFactoryMethodName, getInitMethodName, getMethodOverrides, getOriginatingBeanDefinition, getPropertyValues, getQualifier, getQualifiers, getResolvedAutowireMode, getResource, getResourceDescription, getRole, getScope, hasBeanClass, hasConstructorArgumentValues, hashCode, hasQualifier, isAbstract, isAutowireCandidate, isEnforceDestroyMethod, isEnforceInitMethod, isLazyInit, isLenientConstructorResolution, isNonPublicAccessAllowed, isPrimary, isPrototype, isSingleton, isSynthetic, overrideFrom, overrideFrom, prepareMethodOverride, prepareMethodOverrides, resolveBeanClass, setAbstract, setAutowireCandidate, setAutowireMode, setBeanClass, setBeanClassName, setConstructorArgumentValues, setDependencyCheck, setDependsOn, setDescription, setDestroyMethodName, setEnforceDestroyMethod, setEnforceInitMethod, setFactoryBeanName, setFactoryMethodName, setInitMethodName, setLazyInit, setLenientConstructorResolution, setMethodOverrides, setNonPublicAccessAllowed, setOriginatingBeanDefinition, setPrimary, setPropertyValues, setResource, setResourceDescription, setRole, setScope, setSingleton, setSynthetic, validate
 
Methods inherited from class org.springframework.beans.BeanMetadataAttributeAccessor
addMetadataAttribute, getAttribute, getMetadataAttribute, getSource, removeAttribute, setAttribute, setSource
 
Methods inherited from class org.springframework.core.AttributeAccessorSupport
attributeNames, copyAttributesFrom, hasAttribute
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.core.AttributeAccessor
attributeNames, getAttribute, hasAttribute, removeAttribute, setAttribute
 
Methods inherited from interface org.springframework.beans.BeanMetadataElement
getSource
 

Constructor Detail

GenericBeanDefinition

public GenericBeanDefinition()
Create a new GenericBeanDefinition, to be configured through its bean properties and configuration methods.

See Also:
AbstractBeanDefinition.setBeanClass(java.lang.Class), AbstractBeanDefinition.setBeanClassName(java.lang.String), AbstractBeanDefinition.setScope(java.lang.String), AbstractBeanDefinition.setAutowireMode(int), AbstractBeanDefinition.setDependencyCheck(int), AbstractBeanDefinition.setConstructorArgumentValues(org.springframework.beans.factory.config.ConstructorArgumentValues), AbstractBeanDefinition.setPropertyValues(org.springframework.beans.MutablePropertyValues)

GenericBeanDefinition

public GenericBeanDefinition(BeanDefinition original)
Create a new GenericBeanDefinition as deep copy of the given bean definition.

Parameters:
original - the original bean definition to copy from
Method Detail

setParentName

public void setParentName(String parentName)
Description copied from interface: BeanDefinition
Set the name of the parent definition of this bean definition, if any.


getParentName

public String getParentName()
Description copied from interface: BeanDefinition
Return the name of the parent definition of this bean definition, if any.


cloneBeanDefinition

public AbstractBeanDefinition cloneBeanDefinition()
Description copied from class: AbstractBeanDefinition
Clone this bean definition. To be implemented by concrete subclasses.

Specified by:
cloneBeanDefinition in class AbstractBeanDefinition
Returns:
the cloned bean definition object

equals

public boolean equals(Object other)
Overrides:
equals in class AbstractBeanDefinition

toString

public String toString()
Overrides:
toString in class AbstractBeanDefinition