我正在使用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
还是在设置其值时。
答案 0 :(得分:1)
修改强>
原来他们只支持一些文件扩展名:https://github.com/typesafehub/config#rationale-for-supported-file-formats。我测试了各种文件,.properties
只收集了.conf
,.json
和include
个文件。静默忽略任何其他文件类型。
(以下不是问题,虽然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
开始。