我有一个关于从加载自定义配置文件的属性问题。 我已经尝试了两种不同的方法来加载我oauth.properties
文件,但我不能让任何工作,所以我在这里希望有人能帮助我。
我尝试的第一个方法是将文件添加到conf目录正是如此引用它:
String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile();
但是,刚刚返回NULL
。
第二种方法我尝试了补充:
@include.oauthProperties = oauth.properties
到application.conf
文件,然后引用它在我的控制器,如:
String clientId = oauthProperties.clientId;
然而,这并不编译。
任何人都可以阐明我做错了什么在这里一些轻?
我不知道如果CONF是对类路径的一部分。 所以我想尝试/conf/oauth.properties
或将文件放入类路径。 此外,你应该使用Play.application.classloader()
而不是类加载器。
关于包括:我仍然认为你需要调用Play.application().configuration().get("clientID");
为了分析的情况下,你可以开始与应用-Dconfig.trace=loads
并分析与配置Play.application().configuration().root().render()
希望这给你足够的提示,这样就可以解决你的问题。
什么工作对我来说,在一个文件/conf
:
import com.typesafe.config.ConfigFactory
val myConfig = ConfigFactory.load("myfile.properties").getConfig("my.config.prefix")
在一般情况下,获取从“/ conf目录”目录中的任何文件,使用播放2.2是可以做到如下(请注意,“/ conf目录”是在类路径中,所以你不应该包括它)。
Play.application().classloader().getResource("any_file");
如果你想使用scala.io.Source
你也可以这样做
Source.fromFile(Play.getFile("path-in-your-play-project"))