0

我有一个spring config serverspring config client。在客户端中,我已设置spring.cloud.config.uri为,http://localhost:8888但我想将其更改为其他一些 uri,例如http://example.com:8888在 Windows 中使用带有setx. 所以我跑了

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

但是当我运行它时spring config client,它仍在尝试从localhost. 根据链接,我spring.cloud.config.uri的 inbootstrap.yml应该被我设置的内容覆盖,OS environment但它没有。请让我知道我在这里做错了什么。

4

1 回答 1

1

设置

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)。

于 2016-10-29T00:30:38.880 回答