7

我有一个关于从自定义配置文件加载属性的问题。我尝试了两种不同的方法来加载我的oauth.properties文件,但我都无法工作,所以我希望这里有人可以帮助我。

我尝试的第一种方法是将文件添加到 conf 目录并因此引用它:

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

但这才回来NULL

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

@include.oauthProperties = oauth.properties

到该application.conf文件,然后在我的控制器中引用它,例如:

String clientId = oauthProperties.clientId;

但是,这不会编译。

谁能阐明我在这里做错了什么?

4

4 回答 4

16

对我有用的文件是/conf

import com.typesafe.config.ConfigFactory

val myConfig = ConfigFactory.load("myfile.properties").getConfig("my.config.prefix")
于 2012-08-08T14:47:03.303 回答
12

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

关于包括:我仍然认为您需要致电Play.application().configuration().get("clientID");

要分析情况,您可以使用 启动应用程序-Dconfig.trace=loads并使用 分析配置Play.application().configuration().root().render()

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

于 2012-05-01T15:31:12.523 回答
6

在一般情况下,要从“/conf”目录中获取任何文件,使用 Play 2.2 可以按如下方式完成(注意“/conf”在类路径中,因此您不应包含它)。

Play.application().classloader().getResource("any_file");
于 2014-01-18T15:04:38.833 回答
-2

如果你想使用scala.io.Source你也可以做类似的事情

Source.fromFile(Play.getFile("path-in-your-play-project"))
于 2015-11-27T07:59:41.263 回答