typesafe config
https://github.com/lightbend/config
Bibliothèque de chargement de configuration créée par typesafe (maintenant lightbend)
«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
--Définir la bibliothèque écrite en java sans bibliothèques dépendantes
É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"
* }
*/
}
}
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
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`
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