A bean with that name has already been defined and overriding is disabled
启动报错:Description:The bean 'xxx' could not be registered. A bean with that name has already been defined and overriding is disabled.Action:Consider renaming one of the beans or enabling overriding by s
·
启动报错:
Description:
The bean 'xxx' could not be registered. A bean with that name has already been defined and overriding is disabled.
Action:
Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true
这个报错是因为默认情况下feign
不允许一个服务定义多个接口类,如果出现多个接口类会报Bean冲突;
例如:
@Component
@FeignClient(name = "user-service",path = "/user")
public interface UserFeignService1 {
@RequestMapping("/register")
public ResultModel register(@RequestBody xxxDto dto);
}
@Component
@FeignClient(name = "user-service",path = "/user")
public interface UserFeignService2 {
@RequestMapping("/login")
public ResultModel register(@RequestBody xxxDto dto);
}
解决方案:报错信息提示我们加spring.main.allow-bean-definition-overriding=true
配置(有时候不起作用),也可以通过加在@FeignClient
注解加contextId
属性;
例如:
@Component
@FeignClient(name = "user-service",path = "/user",contextId = "user1")
public interface UserFeignService1 {
@RequestMapping("/register")
public ResultModel register(@RequestBody xxxDto dto);
}
更多推荐
已为社区贡献1条内容
所有评论(0)