在erlang应用程序中为应用程序环境变量设置不同值的推荐方法是什么?
我的意思是:您如何在erlang应用程序中支持应用程序中的不同环境(例如开发,阶段,生产)?例如,我希望在已知主机上使用特定虚假服务进行测试,生产代码使用不同主机上的真实服务器。
答案 0 :(得分:5)
您也可以使用应用程序配置文件。您还可以在启动erlang控制台时将config作为参数传递,该控制台可以帮助您设置环境变量。因此,您可以根据环境传递test.config或production.config,无需编译代码并启动它们。
您可以在此处找到更多信息
答案 1 :(得分:1)
依赖注入。
test_setup() -> [ {host,"http://..."}, ... ].
prod_setup() -> [ {host,"http://..."}, ... ].
test_start() -> start(test_setup()).
prod_start() -> start(prod_setup()).
start(Config) -> ... .
或者,政策模块。制定一个其接口与您需要的东西相匹配的策略,然后传入包含所需策略的模块的名称。想想ETS / DETS。