从外部属性文件

时间:2016-10-31 10:50:58

标签: scala playframework sbt

我的项目设置如下:

project structure

我想动态填写application.conf值。

应从正确的属性文件($ {env} .props.properties)中读取这些值。正确的属性文件取决于使用run或build命令(Denv = xxx)给出的属性env。

  

application.conf
  关键= $ {} my.property.value.read.from.props.properties.file
  键2 = ...

提前致谢!

2 个答案:

答案 0 :(得分:1)

通过在运行应用程序时指定标志-Dconfig.resource=your.file.properties,可以告诉Typesafe Config完全加载不同的配置文件。如果配置文件不是捆绑资源,则可以使用-Dconfig.file=/path/to/your.file.properties。 (您也可以使用-Dconfig.url指定网址;有关详细信息,请参阅https://github.com/typesafehub/config#user-content-standard-behavior

执行此操作将完全跳过加载application.conf,因此请记住在您自己的属性文件中设置Play!特定属性。

答案 1 :(得分:0)

您可以尝试使用Typesafe ConfigFactory.invalidateCaches来使无效的配置条目。正如api doc所说;首先进行更改,然后在api之上调用,然后调用load()(一种解决方案是让调度程序每隔x个间隔调用一次)。 免责声明-我还没有尝试过 https://lightbend.github.io/config/latest/api/com/typesafe/config/ConfigFactory.html#invalidateCaches--