配置-使用Play从Java类访问application.conf属性! 2.0
我想将一个对象添加到Global范围,并且为了构造它,我需要将其传递到文件的路径。我不想在源代码中对文件路径进行硬编码,因此我想从application.conf中获取该路径。
问题是我不知道如何从java类访问这些属性。我尝试了这个:
Configuration.root().getString("file.path")
但是它以NullPointerException结尾。
假设我可以使用一个全局Configuration实例,这是我错了吗?谢谢。
12个解决方案
80 votes
尝试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],因此它也可以提供一些见解。
Nasir answered 2019-10-10T02:03:23Z
52 votes
即使看起来很简单,这也是从配置文件获取属性的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");
i.am.michiel answered 2019-10-10T02:04:06Z
36 votes
从Play 2.4 and +开始,最好使用依赖项注入来访问配置:
import play.Configuration;
import javax.inject.Inject;
@Inject
private Configuration configuration;
...
String value = configuration.getString("your.key");
Saeed Zarinfam answered 2019-10-10T02:04:30Z
12 votes
由于Play 2使用Typesafe配置库,因此我在application.conf中访问了我的var,如下所示:
ConfigFactory.load().getString("my.var");
Cyril N. answered 2019-10-10T02:04:56Z
3 votes
在播放中,java是:
import play.Play;
...
Play.application().configuration().getString("key")
Alfaville answered 2019-10-10T02:05:20Z
2 votes
用途如下(在Play 1.2.5中测试)
${play.configuration.getProperty('my.var')}
应该在application.conf文件中指定my.var的位置
Rajesh answered 2019-10-10T02:05:52Z
1 votes
作为从模板访问它的参考(用于播放<2)
play.configuration['your.key']
fmsf answered 2019-10-10T02:06:16Z
1 votes
正如人们所提到的,conf/application.conf不再存在。
在Play Scala 2.3.x中,要从conf/application.conf中读取一个值,您可以执行以下操作:
import play.api.Play.current
...
current.configuration.getString("key")
cmd answered 2019-10-10T02:06:49Z
0 votes
在Play 1.2.x中
import play.Play;
...
String version = Play.configuration.getProperty("application.version.number", "1.1.1");
其中第二个参数是默认值
xyz answered 2019-10-10T02:07:20Z
0 votes
汇入这个
import com.typesafe.config.Config;
并写下以下几行
private Config config;
this.config = ConfigProvider.config();
String value = this.config.getString("fieldFromConfigFile");
Atul Chavan answered 2019-10-10T02:07:51Z
0 votes
import play.Play;
String myVal = Play.configuration.getProperty("your.key").toString();
我在我的应用程序中使用它,它有效
不要忘记导入play.Play。 希望能给您帮助
Elang Putra Sartika answered 2019-10-10T02:08:28Z
0 votes
从版本2.5开始,请使用play.Application类,应将其注入,然后 application.config().getString("your.property.here")
user3504158 answered 2019-10-10T02:08:54Z