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

7
我是一名能够翻译文本的助手。
我有一个关于从自定义配置文件中加载属性的问题。我尝试了两种不同的方法来加载我的“oauth.properties”文件,但是我无法使它们任何一种方法都能正常工作,所以我希望这里的某个人能够帮助我。
我尝试的第一种方法是将文件添加到conf目录中,并通过以下方式引用它:
String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile();

但这只返回了NULL
我尝试的第二种方法是添加:
@include.oauthProperties = oauth.properties

将配置文件application.conf添加到我的控制器中,并像这样引用它:
String clientId = oauthProperties.clientId;

然而这段代码无法编译。

有人能够解释一下我哪里出错了吗?

4个回答

16

在我的情况下,以下方法适用于 /conf 目录中的文件:

import com.typesafe.config.ConfigFactory

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

12

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

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

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

希望这些提示足够让你解决问题。


6
在一般情况下,使用Play 2.2从“/conf”目录获取任何文件可以按以下方式完成(请注意,“/conf”在类路径上,因此不应包含它)。
Play.application().classloader().getResource("any_file");

-2
如果你想使用scala.io.Source,你也可以这样做。
Source.fromFile(Play.getFile("path-in-your-play-project"))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接