我有一个spring config server
和spring 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)。