Scala Spray框架中的两个配置文件

Scala Spray框架中的两个配置文件,scala,akka,spray,Scala,Akka,Spray,我有RESTAPI,它是使用Scala和Spray框架开发的。我能够从localhost执行和启动我的Api。API已连接到数据库。从参考资料下的“application.conf”文件中读取数据库的IP地址(localhost)和端口 在我开始使用Docker之前,一切正常。在Docker中,我有: 1.RESTAPI的一个Docker容器 2.数据库的一个Docker容器 每个docker实例的数据库IP地址都会更改,因此我需要更新我的“application.conf”文件。虽然我可以使用

我有RESTAPI,它是使用Scala和Spray框架开发的。我能够从localhost执行和启动我的Api。API已连接到数据库。从参考资料下的“application.conf”文件中读取数据库的IP地址(localhost)和端口

在我开始使用Docker之前,一切正常。在Docker中,我有: 1.RESTAPI的一个Docker容器 2.数据库的一个Docker容器

每个docker实例的数据库IP地址都会更改,因此我需要更新我的“application.conf”文件。虽然我可以使用保持不变的Db实例的主机名

我的问题是:我是否可以有两个“application.conf”文件,一个用于localhost,一个用于Docker实例?有没有办法在运行时更改“application.conf”文件


p.s我正在使用“sbt run”运行应用程序,根据文档,它不支持java系统属性或环境变量

是的,您可以在运行时选择配置。spray&akka使用typesafe配置库,该库允许使用JVM属性设置单个设置或整个配置

从:

用于使用
应用程序的应用程序。{conf,json,properties}
,系统 属性可用于强制使用不同的配置源:

  • config.resource
    指定资源名称,而不是基本名称,即
    application.conf
    application
  • config.file
    指定文件系统路径,它同样应该包括扩展名,而不是基名
  • config.url
    指定url
这些系统属性指定了的替换项
应用程序。{conf,json,properties}
,不是添加项。他们只是 使用默认的
ConfigFactory.load()配置影响应用程序。在里面
在替换配置文件中,您可以使用
包括“应用程序”
来 包括原始默认配置文件;在include语句之后 您可以继续覆盖某些设置