SpringBoot项目启动报xxx.FeignClientSpecification问题的原因及解决办法

        今天在启动项目的时候,idea控制台突然打印了The bean 'user.FeignClientSpecification', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.这样的错误,项目启动失败。我一脸懵逼,昨天启动的时候还好好的,怎么突然就启动不了了。百度后才发现,项目配置文件bootstrap.yml中的spring.main.allow-bean-definition-overriding=true配置不见了造成的。于是重新加上这个配置后,项目启动成功。

        但是到底发生了什么事情,为什么需要加上这个配置,它到达有什么用,不加不行吗。带着这样的疑惑,我决定从网上找找答案。

须知
在Spring Boot 2.0.x 中,spring.main.allow-bean-definition-overriding属性默认是 true;
注解@FeignClient 没有contextId属性;

在Spring Boot 2.1.x 中,spring.main.allow-bean-definition-overriding属性默认是 false;
注解@FeignClient 有contextId属性;

Spring Boot 2.1.x 已经通过增加contextId属性来避免了bean重复定义的问题,记得给contextId赋值啊。

        下面以Spring Boot 2.1.x版本来说明:

spring.main.allow-bean-defini

你可能感兴趣的:(Java,spring,spring,spring,boot)