it-swarm.com.de

Zugriff auf die Eigenschaften von application.conf aus der Java-Klasse mit Play! 2,0

Ich möchte dem globalen Gültigkeitsbereich ein Objekt hinzufügen, und um es zu konstruieren, muss ich ihm einen Pfad zu einer Datei übergeben. Ich möchte den Dateipfad in der Quelle nicht hart codieren, und ich möchte um diesen Pfad aus der application.conf zu erhalten.

Das Problem ist, dass ich nicht weiß, wie ich auf diese Eigenschaften von der Java-Klasse aus zugreifen kann. Ich habe folgendes versucht:

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

Es endet jedoch mit einer NullPointerException .

Bin ich falsch in der Annahme, dass es eine globale Konfigurationsinstanz gibt, die ich verwenden kann? Vielen Dank.

55
Nitzan Tomer

Play.application().configuration().getString("your.key") ausprobieren

Wie im Kommentar (nico_ekito) angegeben, verwenden Sie bitte play.Play und nicht play.api.Play. play.api.Play ist für Scala-Controller (siehe Kommentar von Marcus Biesior Biesioroff)

Darüber hinaus verwendet play https://github.com/typesafehub/config unter der Haube, um auch einige Einblicke zu erhalten. 

80
Nasir

Auch wenn es einfach zu sein scheint, haben Sie hier die Methode scala, um Eigenschaften aus der Konfigurationsdatei abzurufen: 

Play 2.0 und 2.1:

import play.api.Play.current
...
Play.application.configuration.getString("your.key")

Play 2.2 und +

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

Typesafe config verwenden

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

Von Play 2.4 and + aus ist es besser, die Abhängigkeitseingabe für den Zugriff auf Konfigurationen zu verwenden:

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


@Inject
private Configuration configuration;

...

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

Da Play 2 die Typesafe-Konfigurationsbibliothek verwendet, habe ich meine Variablen in application.conf folgendermaßen aufgerufen:

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

Im Spiel ist Java:

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

Verwendung wie folgt (In Play 1.2.5 getestet)

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

wobei meine.var in der Datei application.conf angegeben werden sollte

2
Rajesh

Als Referenz für den Zugriff von der Vorlage aus (für das Spiel <2) 

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

Wie die Leute erwähnt haben, existiert Play.application.configuration nicht mehr.

In Play Scala 2.3.x können Sie zum Lesen eines Werts aus conf/application.conf Folgendes tun:

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

Importiere das

import com.typesafe.config.Config;

und schreibe die folgenden Zeilen

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();

ich verwende das in meiner App und es funktioniert

Vergessen Sie nicht, play zu importieren. Spielen. Ich hoffe es hilft dir

0

In Wiedergabe 1.2.x

import play.Play;
...


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

wobei der zweite Parameter der Standardwert ist

0
xyz

Ab Version 2.5 benutzen Sie bitte play.Application Klasse die injiziert werden soll und dann application.config().getString("your.property.here")

0
user3504158