这篇文章就是我从Java Play应用程序中引用环境变量的注意事项 - https://www.playframework.com/documentation/2.6.x/ProductionConfiguration#Using-environment-variables
在我的application.conf文件中,我将值配置为 -
rabbitmq.hosts="rabbit.queue.service"
rabbitmq.hosts=${?MQ_BROKER_HOSTS}
我正在我的MAC中对其进行本地测试,即使我已为MQ_BROKER_HOSTS
设置了环境变量,它始终会获取默认值rabbit.queue.service
。
这些是我在本地MAC中将MQ_BROKER_HOSTS
设置为环境变量所做的事情 -
创建了一个文件〜/ .profile 并在那里添加了这一行:
export MQ_BROKER_HOSTS=localhost
在文件〜/ .bash_profile 中添加了这一行 -
export MQ_BROKER_HOSTS=localhost
然后我跑了这个命令 -
$ source ~/.profile
$ source ~/.bash_profile
之后我打开了一个新终端并运行了命令env
,我可以在变量列表中看到变量MQ_BROKER_HOSTS
。
我也运行命令printenv
,即使变量列表中存在变量MQ_BROKER_HOSTS
。
我也尝试了echo $MQ_BROKER_HOSTS
并打印输出localhost
。
任何人都可以告诉我为什么我的Play应用程序无法选择环境变量。我是否在我的MAC中正确设置了环境变量,或者我的应用程序中缺少任何内容。
在我的播放应用程序中,我将值取为 -
conf.getString("rabbitmq.hosts")
其中conf是Play Configuration
类的实例。
我已经花了很多时间来解决这个问题,任何建议都会非常感激。感谢。