typesafe config
https://github.com/lightbend/config
Konfigurationsladebibliothek erstellt von typesafe (jetzt lightbend)
――Ich habe es irgendwie benutzt, also habe ich es geschrieben, um es zu organisieren.
Schreiben wir in build.sbt
libraryDependencies += "com.typesafe" % "config" % "1.3.1"
Laden Sie die Konfigurationsdatei mit ConfigFactory.load
.
Sie können den Wert aus dem Schlüsselsatz aus dem zurückgegebenen Konfigurationsobjekt abrufen und verwenden
Das Config-Objekt hat die Methode "get ~", und Sie können lesen, was Sie in die Konfigurationsdatei geschrieben haben, indem Sie den Typ angeben. Beim Lesen tritt ein Fehler auf, wenn die Methode und der tatsächliche Werttyp unterschiedlich sind.
Code wird ↓
import com.typesafe.config.ConfigFactory
object ConfigSample {
def main(args: Array[String]): Unit = {
val config: Config = ConfigFactory.load()
config.get~("path") //Wert einstellen~Zum Lesen als Form verwenden
// String, Int, Enum, Boolean, etc...
val subconf: Config = config.getConfig("subconfig")
//Wenn es eine Conf-Datei wie die folgende gibt
//Ein in subconfig verwurzeltes Konfigurationsobjekt wird in subconf zurückgegeben
//Damit`subconf.getString("host")`Dann"sub_host"Kehrt zurück
/*
* # application.conf
* host = "main_host"
* subconfig {
* host = "sub_host"
* }
*/
}
}
Inhalt der Konfiguration des Dateipfads
ConfigFactory.load("Dateiname") // Dateinameには拡張子を含めない
Application.conf
, application.json
, application.properties
, reference.conf
und Systemeigenschaften unter src / main / resources
application.conf
> application.json
> application.properties
> reference.conf
Der eingestellte Wert wird mit priorisiert
Da reference.conf später gelesen wird, empfiehlt es sich, beim Erstellen einer Bibliothek den Standardwert zu schreiben.
include
a.conf
a = "a"
application.conf
include "a"
b = "b"
val config = ConfigFactory.load()
config.getString("a") // a
config.getString("b") // b
Eigenschaftsname = $ {Name der Ersatzquelleneigenschaft}
application_host = "untarakantara.com"
application_url = "https://${application_host}"
ConfigFactory.load().getString("application_url") // `https://untarakantara.com`
Eigenschaftsname = $ {? Umgebungsvariable}
Wenn keine Umgebungsvariable vorhanden ist und ein Wert mit demselben Eigenschaftsnamen wie der Umgebungsvariablenname in conf festgelegt ist, wird er verwendet.
password = ${?PASS_WORD}
Recommended Posts