2012-05-01 53 views
7

我有一个关于从自定义配置文件加载属性的问题。我试过 两种不同的方法来加载我的oauth.properties文件,但我不能 得到工作,所以我希望有人在这里可以帮助我。自定义配置文件 - 播放!框架2.0

我尝试的第一个方法是将文件添加到conf目录 正是如此引用它:

String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile(); 

但是,刚刚返回NULL

第二种方法我尝试是添加:

@include.oauthProperties = oauth.properties 

application.conf文件,然后引用它 我喜欢控制器:

String clientId = oauthProperties.clientId; 

然而,这并不编译。

任何人都可以阐明我在这里做错了什么吗?

回答

12

我不确定conf是否是classpath的一部分。所以我会尝试/conf/oauth.properties或将文件放入类路径中。此外,您应该使用Play.application.classloader()而不是Classloader。

关于包括:我仍然认为你需要调用Play.application().configuration().get("clientID");

的情况来分析,你可以用-Dconfig.trace=loads启动应用程序,并与Play.application().configuration().root().render()分析的配置。

希望这给你足够的提示,以便你可以解决你的问题。

16

什么/conf与文件为我工作:

import com.typesafe.config.ConfigFactory 

val myConfig = ConfigFactory.load("myfile.properties").getConfig("my.config.prefix") 
6

在一般情况下,获取从“/ conf目录”目录中的任何文件,使用播放2.2是可以做到如下(注意, “/ conf”在类路径中,所以你不应该包含它)。

Play.application().classloader().getResource("any_file"); 
-2

如果你想使用scala.io.Source你也可以这样做

Source.fromFile(Play.getFile("path-in-your-play-project"))