如何根据操作系统环境动态修改配置服务器的uri



我有一个spring config serverspring config client。在客户端,我已将spring.cloud.config.uri设置为http://localhost:8888,但我想将其更改为其他uri,例如在使用setx的操作系统环境的windows中使用http://example.com:8888。所以我输入

setx spring.cloud.config.uri "http://example.com:8888" 

,但当我运行我的spring config client,它仍然试图从localhost读取。根据这个链接,我在bootstrap.yml中的spring.cloud.config.uri应该被我用OS environment设置的内容覆盖,但它没有。请告诉我哪里做错了。

setx

setx添加了变量,但不使它在当前shell中可用(如下所示):

setx永久性地修改该值,影响以后所有的shell。但是不会修改已经运行的shell的环境。你必须在更改之前退出shell并重新打开它可用,但该值将保持修改状态,直到您更改它为止一次。

确保你是从一个新打开的shell窗口运行的。

我建议你使用set spring.cloud.config.uri=http://example.com:8888只是为了测试。

检查环境变量是否存在

您可以添加以下内容作为main方法的第一行:

System.out.println(System.getenv("spring.cloud.config.uri"));
System.out.println(System.getenv("SPRING_CLOUD_CONFIG_URI"));

带下划线的变量名

Windows支持带有点的环境变量,所以对你来说应该没问题。这并不是所有其他操作系统的情况。正如您所知道的,spring支持使用下划线作为变量名(如您提供的链接所述):

如果您使用环境变量而不是系统属性,大多数操作系统不支持用句点分隔的键名,但您可以使用下划线代替(例如SPRING_CONFIG_NAME代替spring.config.name)。

相关内容

  • 没有找到相关文章

最新更新