protected Object doCreateProxy(BeanDefinitionBase pd, Class<?> type, Object bean){
Object proxy;
if(ProxyBean.class.isAssignableFrom(pd.getBeanClass())) {
proxy = doCreateBeanOnly(pd);
((ProxyBean)proxy).setTargetBean(bean);
}else{
ReflectConstructor c = ReflectClass.of(pd.getBeanClass()).getConstructor(type);
if(null == c) {
throw new BeanCreationException("Can't create proxy '" + pd.getBeanClass() + "', No valid constructor");
}
proxy = c.newInstance(bean);
beforeBeanCreation(pd);
processBeanCreation(pd, proxy);
afterBeanCreation(pd);
pd.setInited(true);
}
return proxy;
}