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

tra*_*ega 7 java file custom-configuration playframework-2.0

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

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

String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile();
Run Code Online (Sandbox Code Playgroud)

但那刚刚回来了NULL.

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

@include.oauthProperties = oauth.properties
Run Code Online (Sandbox Code Playgroud)

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

String clientId = oauthProperties.clientId;
Run Code Online (Sandbox Code Playgroud)

但是这不会编译.

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

Vic*_*nko 16

什么对我有用的文件/conf:

import com.typesafe.config.ConfigFactory

val myConfig = ConfigFactory.load("myfile.properties").getConfig("my.config.prefix")
Run Code Online (Sandbox Code Playgroud)


nie*_*els 12

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

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

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

希望这能为您提供足够的提示,以便您可以解决问题.


Did*_*ero 6

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

Play.application().classloader().getResource("any_file");
Run Code Online (Sandbox Code Playgroud)