我正在使用 Mac OS Mojave 和 Spring STS 版本 3.9.7。所以我试图将一些环境变量(例如数据库用户名和密码)加载到我的 application.properties 文件中,但 Spring 无法将它们加载到。我使用此命令设置用户名环境变量:export ABC_DB_UNAME=some_username当我执行echo $ABC_DB_UNAME或printenv时,我可以看到该值。在我的 application.properties 文件中,我将用户名设置如下:spring.datasource.username=${ABC_DB_UNAME}现在,当从 IDE 本身运行我的 spring sts 时,它无法获取值并抛出一个异常ABC_DB_UNAME@database_endpoint 的访问被拒绝。它清楚地表明 spring sts 没有获取我的环境变量。对我来说更麻烦的是,当我使用以下命令通过 maven 运行 spring 应用程序时,它会获取环境变量并且工作正常。mvn spring-boot:run但是使用 mvn 命令我不知道如何让 IDE 触发断点以便我也进行调试。编辑:测试并尝试使用代码 System.getenv("ABC_DB_UNAME") 和 System.getProperty("ABC_DB_UNAME") 打印环境变量也返回 null 但 Maven 仍然有效。
1 回答

肥皂起泡泡
TA贡献1829条经验 获得超6个赞
我认为环境变量是在终端中临时设置的。因此,mvn spring-boot:run
作品。你可以在不同的终端运行它,它应该会失败
您需要在 bashrc (mac) 中设置 ${ABC_DB_UNAME} 以永久保留它。或者您可以在运行应用程序期间将环境变量作为参数传递。
添加回答
举报
0/150
提交
取消