我在本地使用“ 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
中。