web-dev-qa-db-ja.com

Play!2.0を使用してJavaクラスからapplication.confプロパティにアクセスする

グローバルスコープにオブジェクトを追加したいのですが、それを構築するには、ファイルへのパスを渡す必要があります。ソースのファイルパスをハードコーディングしたくないので、application.confからそのパスを取得します。

問題は、Javaクラスからこれらのプロパティにアクセスする方法がわからないことです。これを試しました。

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

しかし、それはNullPointerExceptionで終わります。

使用できるグローバルな構成インスタンスがあると仮定するのは間違っていますか?ありがとう。

57
Nitzan Tomer

Play.application().configuration().getString("your.key")を試してください

コメント(nico_ekito)に記載されているように、play.Playおよびplay.api.Playplay.api.Playはscalaコントローラー用です(Marcus biesior Biesioroffのコメントを参照)

さらに、playは内部で https://github.com/typesafehub/config を使用するため、いくつかの洞察も提供できます。

80
Nasir

簡単に思えても、構成ファイルからプロパティを取得するscalaの方法は次のとおりです。

Play 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 configを使用

import com.typesafe.config.ConfigFactory
...
ConfigFactory.load().getString("your.key");
52
i.am.michiel

Play 2.4 and +から、依存関係注入を使用して構成にアクセスすることをお勧めします。

import play.Configuration;
import javax.inject.Inject;


@Inject
private Configuration configuration;

...

String value = configuration.getString("your.key");
37
Saeed Zarinfam

Play 2はTypesafe構成ライブラリを使用しているため、application.confで次のように変数にアクセスしました。

ConfigFactory.load().getString("my.var");
12
Cyril N.

劇中Javaは:

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

次のように使用します(Play 1.2.5でテスト済み)

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

my.varはapplication.confファイルで指定する必要があります

2
Rajesh

テンプレートからアクセスするための参照として(play <2の場合)

play.configuration['your.key']
1
fmsf

人々が言及したように、Play.application.configuration もはや存在しない。

In Play Scala 2.3.x、conf/application.conf、次のことができます。

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

これをインポート

import com.typesafe.config.Config;

以下の行を書きます

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

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

私は自分のアプリでこれを使用して動作します

Play.Playをインポートすることを忘れないでください。それがあなたを助けることを願っています

0

Play 1.2.xで

import play.Play;
...


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

ここで、2番目のパラメーターはデフォルト値です

0
user9869932

バージョン2.5からは、注入する必要があるplay.Applicationクラスを使用してからapplication.config().getString("your.property.here")

0
user3504158