从ServletContext资源解析XML文档时发生意外异常 [/WEB-INF/applicationContext.xml的];嵌套异常是 java.lang.IllegalStateException:注释指定的bean名称'a' for bean class [com.company.project.b.a.a.a]与现有的, 同名和类的非兼容bean定义 [com.company.project.a.a]
我正在使用基于注释的spring配置,如何使用Proguard避免使用两个具有相同名称的类,因为Spring不允许两个bean具有相同的名称。
答案 0 :(得分:14)
我不确定这是否是您想要的,但您可以在@Component中指定bean名称(以及构造型@Repository,@ Service和@Controller)值:
@Component("myBeanName")
public class MyBean {
}
答案 1 :(得分:1)
另一个原因;在类路径中可能有不同版本的Spring,例如spring 2.x with spring 3.x.在这种情况下,豆类似乎加载了两次。如果您使用maven,请检查模块是否未导入旧版本的Spring(mvn依赖项:树)并通过排除所涉及的弹簧工件(排除项)将其删除。
答案 2 :(得分:0)
我遇到了同样的问题,没有其他帮助。有时,如果您四处移动您的班级,并且它引用的是旧班级,即使它们不存在,也会出现问题。
在这种情况下,只需执行以下操作:
mvn eclipse:clean
mvn eclipse:eclipse
这对我来说很好。