2017-02-28 9 views
0

J'utilise la classe ConfigFactory pour charger la configuration de mon application, mais je veux savoir comment charger une ligne d'un autre fichier et l'ajouter à l'objet Config. Le fichier contient seulement 1 ligne avec la valeur que je veux, et je veux ajouter cette valeur avec à la config avec une nouvelle clé ou mieux à une existante, donc je peux avoir une valeur par défaut.Lire la ligne du fichier et la charger dans la configuration

Est-il possible d'ajouter une touche personnalisée/valeur après la configuration est chargé ?, comme:

config.add("key", "value")

Répondre

2

Vous pouvez le faire en utilisant #withFallback:

// Assuming this is your first config file 
val default = ConfigFactory.load("application.conf") 

// Now we add the second one 
val updated = default.withFallback(ConfigFactory.load("foo.conf")) 

Ou, en supposant que vous avez lu votre line ailleurs comme une valeur, utilisez la même méthode, mais parser la config de la chaîne directement en utilisant ConfigFactory#parseString:

val default = ConfigFactory.load("application.conf") 
val updated = default.withFallback(ConfigFactory.parseString(s"key = $value")) 
+0

Mais je ne veux pas charger un autre fichier de configuration, je veux juste ajouter la chaîne dans le fichier à une valeur sur la configuration réelle. Avec votre méthode, il charge un fichier de configuration, n'est-ce pas? Dans mon fichier, il n'y a pas de structure de configuration, juste une valeur. Dans le cas où je peux le faire avec une valeur simple dans le fichier, comment puis-je accéder à cette valeur alors? – Raxkin

+0

Comment puis-je accéder à la valeur à partir de la parseString (ligne)? Je pense que je n'ai pas bien expliqué. Dans le fichier il n'y a qu'une valeur, il n'y a pas de valeur-clé juste une valeur. Ej: '1234' et je veux ajouter un attribut à la config comme' 'password' ': 1234' – Raxkin