使用Play从java类访问application.conf属性! 2.0

时间:2012-03-23 18:24:19

标签: java configuration playframework playframework-2.0

我想在Global范围中添加一个对象,为了构造它,我需要传递一个文件路径。 我不想在源代码中硬编码文件路径,所以我想从application.conf获取该路径。

问题是我不知道如何从java类访问这些属性。 我试过这个:

Configuration.root().getString("file.path")

但它以 NullPointerException 结束。

假设我可以使用全局配置实例,我错了吗? 感谢。

13 个答案:

答案 0 :(得分:80)

尝试Play.application().configuration().getString("your.key")

正如评论(nico_ekito)中所述,请使用play.Play而不是play.api.Playplay.api.Play适用于scala控制器(请参阅Marcus biesior Biesioroff的评论)

此外,游戏使用引擎盖下的https://github.com/typesafehub/config,因此它也可以提供一些见解。

答案 1 :(得分:52)

即使看起来很简单,也可以使用 scala 方式从配置文件中获取属性:

播放2.0和2.1

import play.api.Play.current
...
Play.application.configuration.getString("your.key")

播放2.2和+

import play.api.Play.current
...
current.configuration.getString("your.key")

使用Typesafe配置

import com.typesafe.config.ConfigFactory
...
ConfigFactory.load().getString("your.key");

答案 2 :(得分:36)

string *str = new string()开始,最好使用依赖注入来访问配置:

Play 2.4 and +

答案 3 :(得分:12)

由于Play 2使用Typesafe配置库,我在application.conf中访问了我的vars,如下所示:

ConfigFactory.load().getString("my.var");

答案 4 :(得分:3)

在游戏中java是:

import play.Play;
...
Play.application().configuration().getString("key")

答案 5 :(得分:2)

使用如下(在Play 1.2.5中测试)

${play.configuration.getProperty('my.var')}

其中my.var应在application.conf文件中指定

答案 6 :(得分:1)

作为从模板访问它的参考(播放< 2)

play.configuration['your.key']

答案 7 :(得分:1)

正如大家所提到的,Play.application.configuration已不复存在。

在Play Scala 2.3.x中,要从conf/application.conf读取值,您可以执行以下操作:

import play.api.Play.current
...
current.configuration.getString("key")

答案 8 :(得分:0)

在Play 1.2.x中

import play.Play;
...


String version  = Play.configuration.getProperty("application.version.number", "1.1.1");

其中第二个参数是默认值

答案 9 :(得分:0)

导入此

import com.typesafe.config.Config;

并写下以下行

private Config config;
this.config = ConfigProvider.config();
String value = this.config.getString("fieldFromConfigFile");

答案 10 :(得分:0)

import play.Play; String myVal = Play.configuration.getProperty("your.key").toString();

我在我的应用程序中使用了它,并且可以正常工作

不要忘记导入play.Play。希望能给您帮助

答案 11 :(得分:0)

从2.5版开始,请使用play.Application类,应将其注入,然后  application.config().getString("your.property.here")

答案 12 :(得分:0)

对于Java Playframework:

Application.conf 中,您可以输入以下内容:

  

email =“ example@gmail.com.pe”

某些班级

  

导入play.Play;

     

电子邮件字符串= Play.application()。configuration()。getString(“ key”)//密钥->电子邮件