最近用springboot的时候,从git上面下载项目下来,别人用着就是好的,我这就起不来了,错误如下:
The bean ‘holidayRepository’, defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
网上一查,是在spring上定义了相同名称的mean,这个就是看业务情况,可以把相同bean定义为不同的名称,或者在application.properties中添加spring.main.allow-bean-definition-overriding=true,这表示允许后来的bean重写先加载的bean,我这是第三方bean名重复,而且application.properties中有spring.main.allow-bean-definition-overriding=true设置,但是它不起作用,这个问题卡了我很久,现在解决了,总结一下设置不起作用的几种方案.
1.配置文件要存放在正确的位置
spring boot默认从4个位置查找application.properties文件,然后放到以下地方来重写spring boot的环境变量或者定义自己的变量
默认的4个位置:
1.当前目录下的/config目录
2.当前目录
3.类路径下的/config目录
4.类路径根目录
我的配置文件没在这几个位置,但是之前可以正确运行,暂时还没找到原因
2.确定设置没有被其他地方的设置覆盖
项目的配置文件一般有很多个,父项目主配置–>父项目分配置–>子项目主配置–>子项目分配置,上面是配置顺序,后面的会把前面的配置覆盖.
3.配置文件没有加载–重新加载
idea重新加载项目步骤
第一步:菜单中选择File - Invalidate Caches/Restart…
第二步:在弹出框中,选择Invalidate and Restart
4.编程软件设置错误,重新导入项目
(1)我用的是idea,file–>Project Structure–>Moudles–>删除在加载
(2).删除原有设置,
我用的是idea,删除.idea目录和*.iml文件,然后执行(1)的操作
5.如果上面都不行,我就放大招了,找一个好的项目,把里面所有内容替换成你的项目,注意像eclipse和idea等的配置文件不要替换,我的问题就是这么解决的,o( ̄︶ ̄)o,后来试验了一下,第四条的第二种也可以解决我的问题