【发布时间】:2021-03-12 17:00:45
【问题描述】:
所以我一直试图弄清楚如何在 application.properties 或 application.yaml 中使用环境变量。由于这适用于无数框架(例如 Laravel),我认为这也适用于 Spring Boot。现在我发现,情况并非如此。
我看到一篇关于 Spring Environment API 的帖子,开始说环境变量 SPRING_DATASOURCE_URL 相当于在我的应用程序中设置 spring.datasource.url。但是,这对我也不起作用。
有没有什么快速的方法可以使用在 .env 文件中声明的变量?
如果可能的话,我想在 application.properties 中这样使用它。
spring.datasource.url=jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
【问题讨论】:
-
它适用于环境或任何其他变量但是不支持 .env 文件,因为这些文件没有作为环境变量公开。
-
您有其他解决方案吗?例如,我想通过配置文件运行在本地运行它,但是当它与 docker 一起使用时,我想通过设置属性。操作系统环境变量。
-
您可以拥有多个配置文件,为每个配置文件设置不同的变量值并在启动时加载它们
-
公开常规环境变量开箱即用。只有那个 .env 文件不受支持。一个 docker 环境变量就可以了。
-
因此,如果我希望它与 dev 中的纯 application.properties 文件和 prod 中的 env-variables 一起使用,我可以创建一个具有绝对值和 application-prod 的 appilaction-dev.properties。使用 ${VAR_NAME} 语法的属性?
标签: java spring spring-boot