[英]How to use different application.conf per environment in Akka-Http?
我是Akka的新手,并且想要针对每个环境(测试,登台,产品等)设置不同的application.conf
文件。
我阅读了Akka的文档 ,但找不到解决方法。
您可能知道任何适当的方式来拥有多个配置文件吗?
这是几种方法。
prod-config:{YOUR_CONFIGURATION_FOR_PROD}
测试配置:{YOUR_CONFIGURATION_TEST_ENV}
等等
application-prod.conf
到application.conf
一种可能是在application.conf中有一个单个变量,该变量将为“ confFile”,基于实际的env
confFile=${?CONF_FILE_NAME}
然后在您的代码中,像这样加载对应文件
val configFile = ConfigFactory.load().getString("confFile")
val appConf = ConfigFactory.load(configFile)
此选项与Akka无关,与配置库无关。 Akka使用默认的配置分辨率,除非您为其指定了Config
实例。
没有特定的用户代码来手动选择特定的文件,您可以有几种选择。 我认为最有用的是系统属性config.resource
,用于在类路径中选择文件(例如,在应用程序jar中), config.file
以使用来自文件系统的文件。
当然,您可能仍然有理由编写自己的代码以选择文件作为其他建议的答案。
配置库文档中的更多详细信息: https : //github.com/lightbend/config#standard-behavior
Akka使用Typesafe配置库 。
便捷方法ConfigFactory.load()加载以下内容(优先级较高的列表):
因此,我们通常在/ resources文件夹中创建一个application.conf文件。
对于不同的环境,我们可以创建特定于环境的文件,例如
在开始时使用include ,include application.conf并指定将覆盖application.conf的特定于环境的配置。
要使用特定的环境,请强制使用其他配置源(例如,从命令行-Dconfig.resource = environment.conf)
使用以下命令启动您的应用程序:
$ sbt运行-Dconfig.resource = development.conf
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.