gpt4 book ai didi

spring - bean 'user-service.FeignClientSpecification' ,在 null 中定义,无法注册

转载 作者:行者123 更新时间:2023-12-02 03:06:35 25 4
gpt4 key购买 nike

我正在启动我的微服务并抛出此错误:

***************************
APPLICATION FAILED TO START
***************************

Description:

The bean 'soa-user-service.FeignClientSpecification', 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

我知道更改覆盖配置可能会解决此问题。但我想知道是否还有其他方法可以避免这个问题。更改覆盖配置只是避免问题,可能无法解决安全问题。我需要在一个微服务中定义多个外部客户端,因为我想将我的服务 api 分类到多个 Controller 中,我的 Controller 如下所示:

@RequestMapping(value="/soa/login")
@FeignClient(name = "soa-user-service")
public interface ILoginController {
}


@RequestMapping(value="/soa/login")
@FeignClient(name = "soa-user-service")
public interface IUserController {
}

如果我将所有 api 放在一个 Controller 中,这个 Controller api 就会很长且难以阅读。这是我的问题:有更好的方法来避免一个微服务中的多 Controller 冲突吗?

附注:

<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
<spring-boot.version>2.1.4.RELEASE</spring-boot.version>

最佳答案

@FeignClient 注释的 name 属性充当客户端的唯一标识符。如果您想在同一个 Spring 上下文中拥有多个 feign 客户端,则每个客户端都需要有一个唯一的名称(或,如 these two attributes are aliases to each other )

为了工作,您的示例需要按以下方式更改:

@RequestMapping(value="/soa/login")
@FeignClient(name = "soa-login-service")
public interface ILoginController {
}

@RequestMapping(value="/soa/login")
@FeignClient(name = "soa-user-service")
public interface IUserController {
}

关于spring - bean 'user-service.FeignClientSpecification' ,在 null 中定义,无法注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58902666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com