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

我想将一个对象添加到全局范围,为了构造它,我需要向它传递文件的路径。我不想在源代码中对文件路径进行硬编码,因此我想从 application.conf 中获取该路径。

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

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

但它以NullPointerException结束。

我是否错误地假设有一个全局配置实例可供我使用?谢谢。


答案 1

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

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

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


答案 2

即使它看起来很简单,这里也是从配置文件中获取属性的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")

使用类型安全配置

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

推荐