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

Spring boot 如何以12因素的方式在applicaton.properties中设置系统环境变量?,spring-boot,environment-variables,properties-file,Spring Boot,Environment Variables,Properties File,从环境变量中获取值时遇到问题。。有许多类似的问题。但是没有一个为我工作 应用程序属性 spring.datasource.platform=postgres spring.datasource.url=jdbc:postgresql://localhost:5432/mydb spring.datasource.username=${SPRING_DATASOURCE_USERNAME} spring.datasource.password=${SPRING_DATASOURCE_PASSWOR

从环境变量中获取值时遇到问题。。有许多类似的问题。但是没有一个为我工作

应用程序属性

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
系统变量

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
但是当我硬编码时,它工作得很好


如果您正确设置了环境变量,则应更新该变量。 例如:
export SPRING\u DATASOURCE\u USERNAME=root

您还可以通过环境变量
spring\u datasource\u username
spring.datasource.password
设置属性
spring\u datasource\u username
spring\u password
。 这样,您就不必在
应用程序.properties
中写入任何与此相关的内容


在system.environment变量中定义值后,请参见关于外部化配置的Spring引导文档:

。您必须重新启动eclipse,以便它能够采取行动,否则它将无法读取最近设置的值。

我按照您所说的做了,并从application.properties中删除了用户名和密码。并且只在环境中定义它。我收到了相同的错误。您是如何设置环境变量的?当我这样设置它们时,它会起作用:
export-SPRING\u-DATASOURCE\u-USERNAME=root
为什么要“export”?我转到我的windows类型环境变量。手动添加。啊,我看到你在使用windows。如何启动应用程序?我认为问题在于您的环境变量可能没有设置。mvn spring boot:run。我猜我的应用程序属性没有读取我设置的环境变量。IntelliJ也有同样的问题。谢谢。这不是多余的吗?spring.datasource.username=${spring\u datasource\u username}