Java SpringSTS不加载环境变量,但运行maven工作

Java SpringSTS不加载环境变量,但运行maven工作,java,spring,maven,spring-boot,environment-variables,Java,Spring,Maven,Spring Boot,Environment Variables,我正在使用MacOSMojave和SpringSTS3.9.7版 因此,我试图将一些环境变量(如数据库用户名和密码)加载到application.properties文件中,但Spring未能将它们加载到 I'v使用此命令设置username环境变量: export ABC_DB_UNAME=some_username 当我echo$ABC\u DB\u UNAME或printenv时,我可以看到值 在我的application.properties文件中,我将用户名设置如下: spring.

我正在使用MacOSMojave和SpringSTS3.9.7版

因此,我试图将一些环境变量(如数据库用户名和密码)加载到application.properties文件中,但Spring未能将它们加载到

I'v使用此命令设置username环境变量:

export ABC_DB_UNAME=some_username
当我echo$ABC\u DB\u UNAMEprintenv时,我可以看到值

在我的application.properties文件中,我将用户名设置如下:

spring.datasource.username=${ABC_DB_UNAME}
现在,当从IDE本身运行SpringSTS时,它无法获取值,并抛出一个异常

ABC_DB的访问被拒绝_UNAME@database_endpoint.

它清楚地表明SpringSTS并没有拾取我的环境变量

对我来说,更让我纠结的是,当我使用下面的命令通过maven运行spring应用程序时,它会拾取环境变量,并且工作正常

mvn spring-boot:run
但是使用mvn命令,我不知道如何让IDE触发断点,以便我也进行调试


编辑:使用System.getenv(“ABC_DB_UNAME”)和System.getProperty(“ABC_DB_UNAME”)代码测试并尝试打印环境变量也会返回null,但maven仍然有效。

我认为环境变量是在终端中临时设置的。因此,
mvn-spring-boot:run
可以工作。您可以在不同的终端上运行它,它应该会失败

您需要在bashrc(mac)中设置${ABC_DB_UNAME}以永久保存它。
或者,您可以在运行应用程序时将环境变量作为参数传递。

不确定为什么会将其标记为重复,我特别说明了如何在application.properties和建议的链接中加载环境变量,答案是通过代码方法。您是对的,尽管我根据另一个stackoverflow主题找到了原因,该主题提到如果在shell中手动完成导出,那么它将仅用于该shell实例。我将所有内容都移动到.bash_配置文件中并重新启动。。。效果很好。仍然接受这个答案。