Map<String, PropertyDescriptor> properties = unsatisfiedNonSimpleProperties(mbd);
for (Map.Entry<String, PropertyDescriptor> entry : properties.entrySet()) {
String propertyName = entry.getKey();
PropertyDescriptor pd = entry.getValue();
if (Object.class.equals(pd.getPropertyType())) continue;
MethodParameter methodParam = BeanUtils.getWriteMethodParameter(pd);
List<String> beanNames = bindRegistry.getBeanNames(methodParam.getParameterType());
boolean binded = false;
if (beanNames.size() == 1) {
mbd.getPropertyValues().add(propertyName, new RuntimeBeanReference(beanNames.get(0)));
binded = true;
} else if (beanNames.size() > 1) {