如何在applicaton.properties中设置系统环境变量的12因素方式?

时间:2017-02-23 21:23:15

标签: spring-boot environment-variables properties-file

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

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

但是当我硬编码时,它工作正常。

更新

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

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

SPRING_DATASOURCE_URL
SPRING_DATASOURCE_USERNAME
SPRING_DATASOURCE_PASSWORD

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