Scala: la charge de propriétés Java
Ce serait facile à lire et à comprendre, Scala code pour charger les propriétés Java selon le code Java suivant:
try {
Properties prop = new Properties();
prop.load(new FileInputStream("config.properties"));
this.host = prop.getProperty("mongo.host");
this.port = new Integer(prop.getProperty("mongo.port"));
this.dbName = prop.getProperty("mongo.db");
this.docsCollName = prop.getProperty("mongo.coll.docs");
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
Merci!
S'il vous plaît, essayez-les vous-même d'abord! Ensuite revenir avec toutes les questions que vous pourriez avoir.
OriginalL'auteur Anton Ashanin | 2013-03-27
Vous devez vous connecter pour publier un commentaire.
Pour la plupart les mêmes (si vous ne l'utilisez pas tout de config de la bibliothèque):
val (host, port, dbName, docsCollName)
? Est-il un anonyme, un tuple ou une liste? Où lire à propos de cette construction? (Je n'ai pas encore vu de telles constructions dans les docs)c'est déstructuration d'affectation qui prend la suite de bloc try (en cas de succès) et affecte les valeurs renvoyées à un ensemble de valeurs locales. De cette façon, vous pouvez utiliser uniquement des vals et pas de vars.
Très cool et beaucoup de plaisir aussi )) Par exemple:
val (x, z) = (123, "xexe".toInt)
. En cas d'exception qui se passe dans le bloc d'affectation - aucune des variables obtenir instancié. Très prédictive de la programmation, en effet, d'un maximum de surprise garanti! ))eh bien, vous êtes Système d'appel.exit() si quelque chose va mal, alors pourquoi ne vous vous souciez de l'instanciation?
sur sys.à la sortie. @AntonAshanin depuis
try
est une expression de la Scala et non pas une déclaration, vous pouvez remplacernew Integer(prop.getProperty("mongo.port"))
partry { Integer.valueOf(prop.getProperty("mongo.port"))} catch { case e: Exception => defaultIntegerValue }
et il sera de retourdefaultIntegervalue
si le nombre entier d'analyse échoueOriginalL'auteur om-nom-nom
Je vais certainement recommander la typesafe config, écrit par la société à l'origine de la Scala et utilisé au moins par Akka cadre.
Caractéristiques (cité d'après wiki):
figure it out.
commentaires
comprend
la substitution ("foo" : ${bar}, "foo" : Bonjour ${qui})
propriétés-comme la notation (un.b=c)
moins bruyant, plus indulgent syntaxe
remplacer les variables d'environnement
Exemple:
une autre raison pour les utiliser, comme Viktor dit, toutes les fois que vous tirer acteurs de la scala 2.10 dépendent de akka-acteurs et config. [docs.scala-lang.org/overviews/core/actors-migration-guide.html]
Oui, je suis d'accord avec votre raisonnement, mais parfois vous avez besoin de quelque chose de vraiment simple, et n'ont pas le temps de s'écarter de l'objectif principal et d'apprendre "encore un autre cadre de configuration".
OriginalL'auteur fracca