Zuvor im Spiel! v1 war es wirklich einfach, Konfigurationsvariablen in zu definieren application.conf
und dann wie folgt darauf zuzugreifen:
play.configuration("db.driver")
Jetzt kann ich jedoch in der Dokumentation nichts für ähnliche Verwendungen in Version 2 oder eine geeignete Alternative finden. Was ist die Methode dafür?
playframework-2.0
Crockpotveggies
quelle
quelle
Antworten:
Ab Play 2.5
play.api.Play.current
ist veraltet. Sie sollten die Abhängigkeitsinjektion verwenden, um dasEnvironment
oder zu injizieren,Configuration
und das verwenden, um den Konfigurationswert zu lesen:Weitere Informationen finden Sie in der Play-Dokumentation .
quelle
Die dazu entsprechende Play 2.0 Scala wäre:
Sie werden auch brauchen
import play.api.Play
Die vollständigen Dokumente hierzu finden Sie hier .
quelle
play.api.Play.maybeApplication.map(_.configuration.getString("db.driver"))
Gilt für Play 2.0 - In Java Controller können Sie Folgendes verwenden:
Verwenden Sie Folgendes, um eine variable Ansicht zu erhalten :
quelle
In Play 2.3.2 für Java können Sie die
com.typesafe.config.ConfigFactory
Option verwenden:Schnelle API!
quelle
Eine andere in Play 2.3 [.8] / Java getestete Methode, um auf Werte aus der application.conf zuzugreifen:
Überprüfen Sie das Dateiprojekt / die Plugins, um die Play-Version zu überprüfen. Die Zeile, die "sbt-plugin" enthält, sollte eine Versionsspezifikation wie "2.3.8" haben.
Wenn beispielsweise application.conf die Zeilen enthält
man könnte diese Werte aus einer Java-Datei / Klasse wie abfragen
Die get ... -Methoden geben null zurück, wenn der Wert nicht gefunden wird. Es gibt auch get ... -Methoden, die einen Standardwert als Argument verwenden.
Details siehe https://www.playframework.com/documentation/2.3.x/api/java/index.html
und überprüfen Sie das Klassenspiel. Konfiguration.
quelle
In Play Scala 2.3.x und 2.4.x
conf/application.conf
können Sie Folgendes tun , um einen Wert zu lesen :quelle
In Play 2.0.1 Java müssen Sie Folgendes tun:
quelle
In Play 2.1, Scala müssen Sie zuerst
import play.api.Play Play.current.configuration.getString("varibale name")
quelle
In Java mit play> 2.5.X können Sie die Konfigurationswerte über den ConfigFactory-Helfer lesen:
oder
Das Objekt Config konvertiert den Parameter in den richtigen Typ. Es macht die Methoden verfügbar, mit denen jeder Java-Typ verarbeitet werden kann (getDouble, getLong usw. usw.)
Doc: https://www.playframework.com/documentation/2.5.0/api/java/play/Configuration.html
quelle
Für den Fall, dass Sie Play Scala verwenden , fand ich diesen Ansatz am besten geeignet, nachdem ich nach einigen Best Practices gesucht hatte. Dazu habe ich die Konfiguration eingefügt und dann wie folgt auf meinen Konfigurationsschlüssel zugegriffen:
Auf diese Weise erhalten Sie nicht die Option, sondern den String. Falls es nicht verfügbar ist, wird eine Ausnahme ausgelöst:
Hauptziel war es, die reine
get
Lösung zu vermeiden, die @peoplemerge bereits erwähnt hat, während eine bestimmte Ausnahme ausgelöst wird, wenn Keine.quelle
Als kleinen Beitrag / Verbesserung zu allen
@Inject
Antworten hier müssen Sie dieconfig.underlying
Implementierung nicht aufrufen . Sie können direkt verwendenconfig.getString
Beispiel:
quelle
Es gibt mehrere Möglichkeiten, mit Scala auf Konfigurationen in Play zuzugreifen
Das Folgende funktioniert mit Play 2.7.x.
Option 1: Mit DI
Option 2: ohne DI
quelle
@Inject()
in einer Testklasse?GuiceApplicationBuilder
Sie die Möglichkeit, Standardbindungen zu überschreiben. Ansonsten werden Ihre vorhandenen Play-Komponenten wie erwartet instanziiert.Wie bereits erwähnt, müssen Sie play.api.Play.current importieren. Dann, wenn Sie laufen:
Auf 2.3.x / Scala 10 erhalten Sie
Wenn dies obligatorisch ist, funktioniert dies:
Schlägt jemand eine bessere Antwort vor?
quelle
// neuer Ansatz nach 2.5.x.
}}
Quelle: https://www.webkj.com/play-framework/play-scala-2.5-reading-config-using-di
quelle