从application.conf

时间:2015-12-23 09:08:08

标签: java playframework playframework-2.3

我正在使用play-2.3。我想通过application.conf加载我的自定义配置文件。但无法加载它。

 conf /
          application.conf
          mycustom.prop

我在application.conf中包含了mycustom.prop,如下所示。

   include file("CAB.prop") 
     or 
    include "mycustom.prop"
    or 
     include "mycustom"

以上都不奏效。

mycustum.prop:

myappIp=x.x.x.x
myappport=1234

在我尝试访问myAppIp时的代码中,它为我提供了NullPointerException

MyGlobal.java

import com.typesafe.config.ConfigFactory
...
    String ip = ConfigFactory.load().getString("myAppIp"); // this line throws NullPointerException

我不确定,问题在于加载mycustom.prop还是在设置其值时。

2 个答案:

答案 0 :(得分:1)

修改

原来他们只支持一些文件扩展名:https://github.com/typesafehub/config#rationale-for-supported-file-formats。我测试了各种文件,.properties只收集了.conf.jsoninclude个文件。静默忽略任何其他文件类型。

(以下不是问题,虽然Play文档说明了这一点,但是底层库接受问题中提到的格式 - 保留在这里用于遗留目的)

来自docs

  

include语句由不带引号的字符串include和紧随其后的单引号字符串组成。

所以它应该是

include "mycustom.prop"

答案 1 :(得分:0)

您可以尝试在application.conf中加入mycustom.prop,然后使用-Dconfig.resource-Dconfig.file启动激活器。

您的mycustom.prop

include "application.conf"
# much configuration follows

如果您的配置文件在类路径上(例如在配置文件夹中),则从activator -Dconfig.resource=mycustom.prop开始 - 如果您想指定路径,则从activator -Dconfig.file=/opt/conf/mycustom.prop开始。