java启动时提示non-compatible bean definition of same name and class【XXX.XXX.XXX.XXX】解决方法

java启动时提示non-compatible bean definition of same name and class【XXX.XXX.XXX.XXX】解决方法_第1张图片

目录

java启动时提示non-compatible bean definition of same name and class【XXX.XXX.XXX.XXX】解决方法

  • 1.前言
  • 2.java启动时提示non-compatible bean definition of same name and class【XXX.XXX.XXX.XXX】解决方法
    • 2.1项目没有重新打包
    • 2.2@Service的名称重复。
    • 2.3引用其他项目的包与本地冲突
  • 3.Maven clean install 打包项目出现源码缺失
  • 4.Maven install 和 package命令
  • 参考


1.前言

容器在启动时扫描到了同名的Bean(被@Service @Controller @Compoent等注解标识的)

2.java启动时提示non-compatible bean definition of same name and class【XXX.XXX.XXX.XXX】解决方法

2.1项目没有重新打包

原因:可能是原先创建了一个接口的实现类,后来在项目过程中移动了该接口实现类的位置,但是重新打包的时候,并没有进行clean一下,导致打出来的war里面的class存在了两个
解决方法:一般这种情况可以尝试:maven clean一下, project clean一下。 将项目原先jar包删除,重新打包。

2.2@Service的名称重复。

在项目中通过复制某个实现类的代码,忘记修改实现类中@Service注解中的方法名称,导致项目中存在两个一样的实现类注解名称,如下图所示。
解决方法:找到所有实现类,打开查看是否与实现类名称保持类似, 存在一样的实现类名称进行修改, 重新运行即可。

2.3引用其他项目的包与本地冲突

在项目pom中引用了其他项目代码导致命名冲突(本地代码修改了,但是线上没有修改)
解决方法:maven在扫描jar包里的方法时,优先扫描本地仓库里的 再然后是线上仓库的代码,这时只需要将引用的项目的代码做修改即可

3.Maven clean install 打包项目出现源码缺失

在打包项目时,使用clean install 打包发现最新的代码没有编译进去 尝试过手动删除target文件 重新clean install;或者重构项目;或者clean validate compile 重新编译项目都不行
解决办法:1.重启IDEA编辑器后 clean package

4.Maven install 和 package命令

intall:
1.将项目打包(jar/war),将打包结果放到项目下的 target 目录下
2. 同时将上述打包结果放到本地仓库的相应目录中,供其他项目或模块引用
package:
1.将项目打包(jar/war),将打包结果放到项目下的 target 目录下

参考

java启动时提示non-compatible bean definition of same name and class【XXX.XXX.XXX.XXX】解决方法

Maven命令 install 和 package的区别
给个三连吧 谢谢谢谢谢谢了
在这里插入图片描述

你可能感兴趣的:(项目问题解决,活动专栏,java,python,pycharm)