属性转换为 对象
ref —> RuntimeBeanReference
value —> TypedStringValue
subElement —> parsePropertySubElement(subElement, bd); bd为母容器
子元素
—> RuntimeBeanReferenc(beanName,parent)
<property name="">
<idref bean="" local=""> ---> RuntimeBeanReferenc(beanName)
</property>
<property name="">
<value> ---> typedValue = new TypedStringValue(value,targetTypeName);
</property>
<!--数组类型-->
<property name="">
<array value-type="">
<value>
</array> ---> ManagedArray target = new ManagedArray(elementType, nl.getLength());
</property> ---> NodeValue = parsePropertySubElement(node,bd,defaultElementType);
<property name="">
<list value-type="">
<value>
</list> ---> ManagedList<Object> target = new ManagedList<Object>(nl.getLength());
</property>
<property name="">
<set value-type="">
<value>
</set> ---> ManagedSet<Object> target = new ManagedSet<Object>(nl.getLength());
</property>
<property name="">
<map key-type="" value-type="">
<entry key="" value=""/>
</map> ---> ManagedMap<Object, Object> map = new ManagedMap<Object, Object>(entryEles.s
</property>
key --- > buildTypedStringValueForMap(key-name, string, <entry key="" value/>);
TypedStringValue typedValue = buildTypedStringValue(key-name, string);
key-ref ---> new RuntimeReference(refname)
key-ele ---> <key>
<value></value>
<ref></ref>
</key> --- > parsePropertySubElement(subElement, bd, defaultKeyTypeName);
value -->
value-ref -->
value-ele --> <value>
<ref>
</value>
属性转换
ValueHolder