Nit*_*mer 60 java configuration playframework playframework-2.0
我想将一个对象添加到全局范围,为了构造它,我需要将它传递给文件的路径.我不想在源代码中硬编码文件路径,因此我想从application.conf获取该路径.
问题是我不知道如何从java类访问这些属性.我试过这个:
Configuration.root().getString("file.path")
Run Code Online (Sandbox Code Playgroud)
但它以NullPointerException结束.
假设我可以使用全局配置实例,我错了吗?谢谢.
Nas*_*sir 81
尝试 Play.application().configuration().getString("your.key")
正如评论(nico_ekito)中所述,请使用play.Play而不是play.api.Play.play.api.Play适用于scala控制器(请参阅Marcus biesior Biesioroff的评论)
此外,播放使用https://github.com/typesafehub/config,因此它也可以提供一些见解.
i.a*_*iel 52
即使看起来很简单,这里是从配置文件中获取属性的scala方法:
播放2.0和2.1:
import play.api.Play.current
...
Play.application.configuration.getString("your.key")
Run Code Online (Sandbox Code Playgroud)
玩2.2和+
import play.api.Play.current
...
current.configuration.getString("your.key")
Run Code Online (Sandbox Code Playgroud)
使用Typesafe配置
import com.typesafe.config.ConfigFactory
...
ConfigFactory.load().getString("your.key");
Run Code Online (Sandbox Code Playgroud)
Sae*_*fam 37
从Play 2.4 and +最好使用依赖注入来访问配置:
import play.Configuration;
import javax.inject.Inject;
@Inject
private Configuration configuration;
...
String value = configuration.getString("your.key");
Run Code Online (Sandbox Code Playgroud)
Cyr*_* N. 12
由于Play 2使用Typesafe配置库,我在application.conf中访问了我的vars,如下所示:
ConfigFactory.load().getString("my.var");
Run Code Online (Sandbox Code Playgroud)