java conf_配置-使用Play从Java类访问application.conf属性! 2.0

配置-使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值