我在本地使用“ consul-config”功能创建了一个简单的micronaut应用程序。我的代码可以连接领事键/值存储并获取属性。我的bootstrap.yml中有以下配置

micronaut:
  application:
    name: user-service
config-client:
  enabled: true
consul:
  client:
    registration:
      enabled: true
    defaultZone: "${CONSUL_HOST:localhost}:${CONSUL_PORT:8500}"


一切都很好,但是我不想在本地计算机上使用consul,因为它涉及网络活动,因此启动需要花费一些时间。我想避免在本地担任领事,但在开发,测试和生产环境中需要领事。

我的应用程序中包含以下代码。 @Value批注将尝试加载“ db-schema”,如果找不到,则使用“ local”作为默认值。因此,如果禁用了领事,则我的应用应使用“本地”,否则应基于领事配置加载值。

@Value("${db-schema:local}")
private String dbSchema;


如何在不更改代码且仅使用环境选项的情况下执行此操作?

我尝试设置VM选项'-Dmicronaut.config-client.enabled = false',但仍然加载bootstrap.yml并尝试连接领事。

最佳答案

您可以通过多种方式进行操作。一种是创建类似于src/main/resources/application-local.yml的文件,其中包含以下内容:

consul:
  client:
    registration:
      enabled: false


并在您的本地环境export MICRONAUT_ENVIRONMENTS=local中。

08-06 04:50