这是我的问题:我打算在不同的域(不同的服务器)上部署相同的应用程序。请不要问为什么......只是按原样使用;)
我需要两个应用程序来加载不同的cfg文件,我想使用站点域作为密钥在启动时加载正确的cfg文件。
如何访问此信息?
答案 0 :(得分:0)
您通常只能通过请求中的主机访问它,因此不会为您删除它。在启动应用程序的每个实例时,我只需指出具有config-file-system属性的特定于域的配置文件。
检查配置文件选择属性: http://www.playframework.com/documentation/2.2.x/Configuration
分阶段的应用入门脚本需要-Dsystem.property.name=value
并将其转发给jvm,以便您可以使用它。
答案 1 :(得分:0)
我解决了在操作系统中设置环境变量的问题:
有关详细信息,请参阅此链接
https://github.com/typesafehub/config#optional-system-or-env-variable-overrides
我选择了这个解决方案,因为我需要两个:
- 所有实例共享的主要大型配置数据
- 特定于每个实例的一组自定义配置数据
我最后进来了:
1)创建一个包含所有自定义设置数组的单个JSON文件
2)设置包含应用程序域名的ENV变量。
我使用ENV变量作为访问此JSON数组的密钥。
在我的操作系统中:
export ENV_VAR='www.mydomain2.net'
在我的application.conf中:
my.domain.name=${?ENV_VAR}
我的JSON就像:
{ "domains": [
"www.mydomain1.net": { "setting1": "aValue1", "setting2": "aValue2" },
"www.mydomain2.net": { "setting1": "aValue3", "setting2": "aValue4" }
]}