1.问题描述
在使用SpringBoot框架开发项目时遇到的一个异常,non-compatible bean definition of same name and class[XXX.XXX],主要意思是:存在相同的实现类名称在不同的package目录下,该问题主要可能存在两种情况。
2.第一种情况
原因:可能是原先创建了一个接口的实现类,后来在项目过程中移动了改接口实现类的位置,但是重新打包的时候,并没有进行clean一下,导致打出来的war里面的class存在了两个。
解决方法:一般这种情况可以尝试:maven clean一下, project clean一下。 将项目原先jar包删除,重新打包。
3.第二种情况
原因:在项目中通过复制某个实现类的代码,忘记修改实现类中@Service注解中的方法名称,导致项目中存在两个一样的实现类注解名称,如下图所示。
解决方法:找到所有实现类,打开查看是否与实现类名称保持类似, 存在一样的实现类名称进行修改, 重新运行即可。