我在本地创建了一个简单的micronaut应用程序,带有'consul-config‘功能。我的代码可以连接并从consul key/value存储中获取属性。我的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’作为默认值。因此,如果consul被禁用,那么我的应用程序应该使用'local‘,否则它应该根据consul配置来加载值。
@Value("${db-schema:local}")
private String dbSchema;我如何在不更改代码的情况下,只使用环境选项来实现这一点?
我尝试设置VM选项‘-Dmicronaut.config-client.enable=false’,但它仍然加载bootstrap.yml并尝试连接consul。
发布于 2019-07-09 10:39:27
有很多方法可以做到这一点。一种方法是创建一个类似src/main/resources/application-local.yml的文件,该文件包含以下内容:
consul:
client:
registration:
enabled: false并且在您的本地环境中使用export MICRONAUT_ENVIRONMENTS=local。
https://stackoverflow.com/questions/56943156
复制相似问题