// 3.className或者interfaceName相同,且都定义的id,需要保存备忘,按类型或者接口自动注入的时候抛异常
for (int i = 0; i < beanDefinitions.size(); i++) {
for (int j = i + 1; j < beanDefinitions.size(); j++) {
log.debug("check bean " + i + "|" + j);
BeanDefinition b1 = beanDefinitions.get(i);
BeanDefinition b2 = beanDefinitions.get(j);
if (VerifyUtils.isNotEmpty(b1.getId())
&& VerifyUtils.isNotEmpty(b2.getId())
&& b1.getId().equals(b2.getId())) {
error("bean " + b1.getClassName() + " and bean "
+ b2.getClassName() + " have duplicate id ");
}
if (b1.getClassName().equals(b2.getClassName())) {
if (VerifyUtils.isEmpty(b1.getId())
|| VerifyUtils.isEmpty(b2.getId())) {
error("class " + b1.getClassName()
+ " duplicate definition");
} else {
errorMemo.add(b1.getClassName());
}
}
for (String iname1 : b1.getInterfaceNames()) {
for (String iname2 : b2.getInterfaceNames()) {
if (iname1.equals(iname2)) {
if (VerifyUtils.isEmpty(b1.getId())
|| VerifyUtils.isEmpty(b2.getId())) {
error("class " + b1.getClassName()
+ " duplicate definition");
} else {
errorMemo.add(iname1);
}