在本地禁用领事配置

时间:2019-07-08 22:17:11

标签: java microservices micronaut

我在本地使用“ 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并尝试连接领事。

1 个答案:

答案 0 :(得分:0)

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

consul:
  client:
    registration:
      enabled: false

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