[JAVA] Eine kleine Zusammenfassung über die typsichere Konfiguration

typesafe config

https://github.com/lightbend/config

Konfigurationsladebibliothek erstellt von typesafe (jetzt lightbend)

Vorwort

――Ich habe es irgendwie benutzt, also habe ich es geschrieben, um es zu organisieren.

Was?

Benutzen

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"
   * }
   */
   
  }
}

Was wird geladen?

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

Ersatz

Eigenschaftsname = $ {Name der Ersatzquelleneigenschaft}

application_host = "untarakantara.com"

application_url = "https://${application_host}"
ConfigFactory.load().getString("application_url") // `https://untarakantara.com`

Aus Umgebungsvariable ersetzen

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

Eine kleine Zusammenfassung über die typsichere Konfiguration
[Persönliches Memo] Ich habe etwas über Modifikatoren gelernt
Fragen und Antworten zu JDK
Informationen zur Eclipse MicroProfile-Konfiguration
Persönliche Zusammenfassung über Java
Hinweise zu Java GC
Hinweise zum Umfang
[Swift] Zusammenfassung über den Bool-Typ
Private Notiz über AtomicReference
Informationen zum Hinzufügen einer ähnlichen Funktion
Hier ist eine Zusammenfassung dessen, worauf ich in letzter Zeit neugierig war