自定义配置文件 - 播放!框架2.0

时间:2012-05-01 01:36:43

标签: java file playframework-2.0 custom-configuration

我有一个关于从自定义配置文件加载属性的问题。我试过了 加载oauth.properties文件的两种不同方法,但我不能 要么上班,所以我希望有人可以帮助我。

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

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

但刚刚返回NULL

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

@include.oauthProperties = oauth.properties

application.conf文件然后引用它 我的控制器如:

String clientId = oauthProperties.clientId;

但是这不能编译。

有人能说清楚我在这里做错了吗?

4 个答案:

答案 0 :(得分:16)

使用/conf中的文件对我有用:

import com.typesafe.config.ConfigFactory

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

答案 1 :(得分:12)

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

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

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

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

答案 2 :(得分:6)

在一般情况下,要从" / conf"中获取任何文件。目录,使用Play 2.2,它可以按如下方式完成(注意" / conf"在类路径上,所以你不应该包括它。)

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

答案 3 :(得分:-2)

如果您想使用scala.io.Source,您还可以执行类似

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