applicaton.properties12因子方式如何设置系统环境变量?

How to set system environment variables in applicaton.properties the 12 factor way?

我无法从我的环境变量中获取值。有很多类似的问题。但是 NONE 对我有用

Application.properties

spring.datasource.platform=postgres
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
spring.datasource.username=${SPRING_DATASOURCE_USERNAME}
spring.datasource.password=${SPRING_DATASOURCE_PASSWORD}

系统变量

Variable name : SPRING_DATASOURCE_USERNAME
Variable Value : dbuser

Variable name : SPRING_DATASOURCE_PASSWORD
Variable Value : 123456789

错误

invalid username/password; logon denied

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

更新

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

您还可以通过环境变量 SPRING_DATASOURCE_USERNAMESPRING_DATASOURCE_PASSWORD 设置属性 spring.datasource.usernamespring.datasource.password。 那么你就不必在 application.properties.

中写任何相关内容

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

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

聚会迟到了,但我不仅要重新启动 IntelliJ IDEA,还要重新启动我的电脑才能使其正常工作。

数据源的环境变量应命名为:

SPRING_DATASOURCE_URL
SPRING_DATASOURCE_USERNAME
SPRING_DATASOURCE_PASSWORD

如果您这样命名,您甚至不必再声明 spring.datasource.urlspring.datasource.usernamespring.datasource.password 属性,因为 Spring 会自动检测这些环境变量,并将使用从中提取的数据创建 DataSource