Spring STS 不加载环境变量但运行 maven 工作

我正在使用 Mac OS Mojave 和 Spring STS 版本 3.9.7。

所以我试图将一些环境变量(例如数据库用户名和密码)加载到我的 application.properties 文件中,但 Spring 无法将它们加载到。

我使用此命令设置用户名环境变量:

export ABC_DB_UNAME=some_username

当我执行echo $ABC_DB_UNAMEprintenv时,我可以看到该值。

在我的 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 仍然有效。



    哔哔one
    浏览 108回答 1
    1回答

    肥皂起泡泡

    我认为环境变量是在终端中临时设置的。因此,mvn spring-boot:run作品。你可以在不同的终端运行它,它应该会失败您需要在 bashrc (mac) 中设置 ${ABC_DB_UNAME} 以永久保留它。或者您可以在运行应用程序期间将环境变量作为参数传递。
    打开App,查看更多内容
    随时随地看视频慕课网APP

    相关分类

    Java