gpt4 book ai didi

java - 如何将heroku config var传递给spring boot的application.properties?

转载 作者:行者123 更新时间:2023-12-02 11:28:31 25 4
gpt4 key购买 nike

我试图将自定义heroku配置变量传递到application.properties中,但没有传递任何值。

我的application.properties条目:

spring.mail.username=${SPRING_MAIL_SENDER_USERNAME}

然后我将此值注入(inject)到字符串变量中:

@Value("${spring.mail.username}")
private String SENDER_MAIL_USERNAME;

但是当我尝试使用 SENDER_MAIL_USERNAME 时,它是一个空字符串。

我可以获得这样的正确值:

System.getenv("SPRING_MAIL_SENDER_USERNAME");

但这不是我要找的。有人知道我在这里做错了什么吗?

编辑:

也许值得补充的是,我的项目使用带有 2 个模块(后端和前端)的 Maven。简化的项目结构如下所示:

-app  
-backend
-src.main
-java.com.jakubeeee.app
-some java files...
-resources
-application.properties
-frontend
-src
-some web files...

我还使用包含以下内容的 Procfile:

web: java -Dserver.port=$PORT -jar $PATH_TO_JAR

其中$PATH_TO_JAR是heroku配置变量,其值:

backend/target/myjarname.jar

最佳答案

您在此处显示的内容应该有效。仔细检查拼写等。否则,您可以将 Procfile 中的选项作为 Java 属性传递,如下所示:

web: java -Dspring.mail.username=${SPRING_MAIL_SENDER_USERNAME} -jar target/myapp.jar

另外,请务必确认它可以与像 spring.mail.username=foo 这样的硬编码值一起使用(否则您会知道它不是环境)。

编辑:

我现在意识到您使用的是 .properties 文件,而不是 .yml 文件。我不确定 Spring 的 application.properties 是否支持环境变量。您可能想尝试使用 application.yml 配置。

关于java - 如何将heroku config var传递给spring boot的application.properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49456401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com