public static<T> T getBean(Class<T> clazz) {
T t = null;
try {
//throw new NoSuchBeanDefinitionException("");
t = getApplicationContext().getBean(clazz);
} catch (NoSuchBeanDefinitionException e) {
if(clazz.isInterface()){
HSFSpringConsumerBean consumer=new HSFSpringConsumerBean();
consumer.setInterfaceName(clazz.getName());
consumer.setVersion("1.0.0");
consumer.setGroup("light");
try {
consumer.init();
t = (T) consumer.getObject();
} catch (Exception e1) {
throw new CommonException(String.format("error to consume the service %s.",clazz.getName()),e);
}
}else{
String nameString =clazz.getSimpleName();
nameString = (nameString.substring(0, 1)).toLowerCase()+nameString.substring(1);
if(SpringContextUtil.registry!=null){
boolean containBean = SpringContextUtil.containsBean(nameString);
if (!containBean) {
registry.registerBeanDefinition(nameString, SpringContextUtil.getDefinition(clazz));
}
Object o = getApplicationContext().getBean(nameString);
t = (T) o;
}
}
}
return t;
}