如何使用 Spring 选择性地禁用 Eureka 发现客户端?

新手上路,请多包涵

有没有办法根据spring配置文件禁用spring-boot eureka客户端注册?

目前我使用以下注释:

 @Configuration
@EnableAutoConfiguration
@EnableDiscoveryClient
@EnableConfigServer

public class ConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigApplication.class, args);
    }
}

我需要的是一个条件,例如(请原谅伪代码)

 @if (Profile!="development")
@EnableDiscoveryClient
@endif

或者应用程序属性文件中的某种方式。我尝试将 application.yml 文件设置为:

 spring:
  profiles: development
  cloud:
    discovery:
      enabled: false

但这没有用。

原文由 zinc wombat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 860
2 个回答

这样做:创建一些 @Configuration 注释的类(类主体可以省略)例如:

 @Profile("!development")
@Configuration
@EnableDiscoveryClient
public class EurekaClientConfiguration {
}

这意味着这个配置文件(和 @EnableDiscoveryClient 内)将被加载到除“开发”之外的每个配置文件中。

希望有帮助,

原文由 patrykos91 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用以下命令在 application.yml 中禁用 eureka 客户端:

 eureka:
  client:
    enabled: false

它也适用于一个配置文件

原文由 dmitryvim 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题