如何在 appplicaton.properties 中以 12 因子方式设置系统环境变量?

Jes*_*sse 3 environment-variables properties-file spring-boot

我无法从我的环境变量中获取值。有很多类似的问题。但是NONE他们的工作对我来说

应用程序属性

spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}
Run Code Online (Sandbox Code Playgroud)

系统变量

Variable name : SPRING_DATASOURCE_USERNAME
Variable Value : dbuser

Variable name : SPRING_DATASOURCE_PASSWORD
Variable Value : 123456789
Run Code Online (Sandbox Code Playgroud)

错误

invalid username/password; logon denied
Run Code Online (Sandbox Code Playgroud)

但是当我对其进行硬编码时,它工作正常。

更新

Dav*_*ing 5

如果您正确设置了环境变量,那么应该可以工作。例如:export SPRING_DATASOURCE_USERNAME=root

您还可以通过环境变量和来设置属性spring.datasource.username和。然后您不必将任何相关内容写入您的.spring.datasource.passwordSPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORDapplication.properties

另请参阅有关外部化配置的 Spring-Boot 文档:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html


Jes*_*sse 5

在 system.environment 变量中定义值之后。您必须重新启动 eclipse 以便它可以采取行动,否则它不会读取最近设置的值。

  • IntelliJ 也有同样的问题。谢谢你。 (2认同)