org.springframework.beans.factory.support
public class: ChildBeanDefinition [javadoc |
source]
java.lang.Object
org.springframework.core.AttributeAccessorSupport
org.springframework.beans.BeanMetadataAttributeAccessor
org.springframework.beans.factory.support.AbstractBeanDefinition
org.springframework.beans.factory.support.ChildBeanDefinition
All Implemented Interfaces:
Cloneable, BeanDefinition, BeanMetadataElement, AttributeAccessor, Serializable
Bean definition for beans which inherit settings from their parent.
Child bean definitions have a fixed dependency on a parent bean definition.
A child bean definition will inherit constructor argument values,
property values and method overrides from the parent, with the option
to add new values. If init method, destroy method and/or static factory
method are specified, they will override the corresponding parent settings.
The remaining settings will always be taken from the child definition:
depends on, autowire mode, dependency check, singleton, lazy init.
NOTE: Since Spring 2.5, the preferred way to register bean
definitions programmatically is the GenericBeanDefinition class,
which allows to dynamically define parent dependencies through the
GenericBeanDefinition#setParentName method. This effectively
supersedes the ChildBeanDefinition class for most use cases.
| Constructor: |
public ChildBeanDefinition(String parentName) {
super();
this.parentName = parentName;
}
Create a new ChildBeanDefinition for the given parent, to be
configured through its bean properties and configuration methods. |
public ChildBeanDefinition(ChildBeanDefinition original) {
super((BeanDefinition) original);
}
Create a new ChildBeanDefinition as deep copy of the given
bean definition. Parameters:
original - the original bean definition to copy from
|
public ChildBeanDefinition(String parentName,
MutablePropertyValues pvs) {
super(null, pvs);
this.parentName = parentName;
}
Create a new ChildBeanDefinition for the given parent. Parameters:
parentName - the name of the parent bean
pvs - the additional property values of the child
|
public ChildBeanDefinition(String parentName,
ConstructorArgumentValues cargs,
MutablePropertyValues pvs) {
super(cargs, pvs);
this.parentName = parentName;
}
Create a new ChildBeanDefinition for the given parent. Parameters:
parentName - the name of the parent bean
cargs - the constructor argument values to apply
pvs - the additional property values of the child
|
public ChildBeanDefinition(String parentName,
Class beanClass,
ConstructorArgumentValues cargs,
MutablePropertyValues pvs) {
super(cargs, pvs);
this.parentName = parentName;
setBeanClass(beanClass);
}
Create a new ChildBeanDefinition for the given parent,
providing constructor arguments and property values. Parameters:
parentName - the name of the parent bean
beanClass - the class of the bean to instantiate
cargs - the constructor argument values to apply
pvs - the property values to apply
|
public ChildBeanDefinition(String parentName,
String beanClassName,
ConstructorArgumentValues cargs,
MutablePropertyValues pvs) {
super(cargs, pvs);
this.parentName = parentName;
setBeanClassName(beanClassName);
}
Create a new ChildBeanDefinition for the given parent,
providing constructor arguments and property values.
Takes a bean class name to avoid eager loading of the bean class. Parameters:
parentName - the name of the parent bean
beanClassName - the name of the class to instantiate
cargs - the constructor argument values to apply
pvs - the property values to apply
|
| Methods from org.springframework.beans.factory.support.AbstractBeanDefinition: |
|---|
|
addQualifier, applyDefaults, clone, cloneBeanDefinition, copyQualifiersFrom, equals, getAutowireMode, getBeanClass, getBeanClassName, getConstructorArgumentValues, getDependencyCheck, getDependsOn, getDestroyMethodName, getFactoryBeanName, getFactoryMethodName, getInitMethodName, getMethodOverrides, getOriginatingBeanDefinition, getPropertyValues, getQualifier, getQualifiers, getResolvedAutowireMode, getResource, getResourceDescription, getRole, getScope, hasBeanClass, hasConstructorArgumentValues, hasQualifier, hashCode, isAbstract, isAutowireCandidate, isEnforceDestroyMethod, isEnforceInitMethod, isLazyInit, isPrimary, isPrototype, isSingleton, isSynthetic, overrideFrom, overrideFrom, prepareMethodOverride, prepareMethodOverrides, resolveBeanClass, setAbstract, setAutowireCandidate, setAutowireMode, setBeanClass, setBeanClassName, setConstructorArgumentValues, setDependencyCheck, setDependsOn, setDestroyMethodName, setEnforceDestroyMethod, setEnforceInitMethod, setFactoryBeanName, setFactoryMethodName, setInitMethodName, setLazyInit, setMethodOverrides, setOriginatingBeanDefinition, setPrimary, setPropertyValues, setResource, setResourceDescription, setRole, setScope, setSingleton, setSynthetic, toString, validate |
| Method from org.springframework.beans.factory.support.ChildBeanDefinition Detail: |
public AbstractBeanDefinition cloneBeanDefinition() {
return new ChildBeanDefinition(this);
}
|
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof ChildBeanDefinition)) {
return false;
}
ChildBeanDefinition that = (ChildBeanDefinition) other;
return (ObjectUtils.nullSafeEquals(this.parentName, that.parentName) && super.equals(other));
}
|
public String getParentName() {
return this.parentName;
}
|
public int hashCode() {
return ObjectUtils.nullSafeHashCode(this.parentName) * 29 + super.hashCode();
}
|
public void setParentName(String parentName) {
this.parentName = parentName;
}
|
public String toString() {
StringBuffer sb = new StringBuffer("Child bean with parent '");
sb.append(this.parentName).append("': ").append(super.toString());
return sb.toString();
}
|
public void validate() throws BeanDefinitionValidationException {
super.validate();
if (this.parentName == null) {
throw new BeanDefinitionValidationException("'parentName' must be set in ChildBeanDefinition");
}
}
|