[JAVA] Un petit résumé sur la configuration de typeafe

typesafe config

https://github.com/lightbend/config

Bibliothèque de chargement de configuration créée par typesafe (maintenant lightbend)

Préface

«Je l'ai utilisé d'une manière ou d'une autre, alors je l'ai écrit pour l'organiser. --Je l'utilise dans Scala

Quoi?

--Définir la bibliothèque écrite en java sans bibliothèques dépendantes

Utiliser

Écrivons dans build.sbt

libraryDependencies += "com.typesafe" % "config" % "1.3.1"

Chargez le fichier de configuration avec ConfigFactory.load.

Vous pouvez obtenir la valeur du jeu de clés à partir de l'objet de configuration retourné et l'utiliser

L'objet Config a une méthode get ~, et vous pouvez lire ce que vous avez écrit dans le fichier de configuration en spécifiant le type. Lors de la lecture, une erreur se produira si la méthode et le type de valeur réelle sont différents.

Le code devient ↓

import com.typesafe.config.ConfigFactory

object ConfigSample {
  def main(args: Array[String]): Unit = {
    val config: Config = ConfigFactory.load()
    
    config.get~("path") //Définir la valeur~Utiliser comme moule pour lire
    // String, Int, Enum, Boolean, etc...
    
    val subconf: Config = config.getConfig("subconfig")
   
 	//Quand il y a un fichier conf comme celui ci-dessous
 	//Un objet Config enraciné dans subconfig est renvoyé dans subconf
 	//Alors`subconf.getString("host")`Puis"sub_host"Retour
   /*
   * # application.conf
   * host = "main_host"
   * subconfig {
   *		host = "sub_host"
   * }
   */
   
  }
}

Qu'est-ce qui est chargé?

Contenu de la configuration du chemin du fichier

ConfigFactory.load("nom de fichier") // nom de fichierには拡張子を含めない

ʻApplication.conf, ʻapplication.json, ʻapplication.properties, reference.conf` et les propriétés système sous src / main / resources

application.conf > application.json > application.properties > reference.conf

La valeur de consigne est priorisée avec

Comme reference.conf est lu plus tard, il semble bon d'écrire la valeur par défaut lors de la création d'une bibliothèque.

include --S'il s'agit d'un fichier conf, les paramètres du fichier spécifié par ʻinclude "nom de fichier" peuvent également être importés dans le fichier dans lequel ʻinclude est écrit. Si le fichier qui a été inclus et le fichier qui a été ont la même valeur de réglage de clé, la valeur de réglage du côtéqui a étépréférée.

a.conf



a = "a"


application.conf


include "a"

b = "b"

val config = ConfigFactory.load()
config.getString("a") // a
config.getString("b") // b

Remplacement

Nom de la propriété = $ {nom de la propriété source de remplacement}

application_host = "untarakantara.com"

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

Remplacer à partir de la variable d'environnement

Nom de la propriété = $ {? Variable d'environnement} S'il n'y a pas de variable d'environnement et qu'une valeur avec le même nom de propriété que le nom de variable d'environnement est définie dans conf, elle sera utilisée.

password = ${?PASS_WORD}

Recommended Posts

Un petit résumé sur la configuration de typeafe
[Note personnelle] J'ai appris à la légère sur les modificateurs
Questions et réponses sur JDK
À propos d'Eclipse MicroProfile Config
Résumé personnel sur Java
Remarques sur Java GC
Remarques sur la portée
[Swift] Résumé du type Bool
Note privée sur AtomicReference
À propos de l'ajout d'une fonction similaire
Voici un résumé de ce que j'ai été curieux à propos d'Enum récemment