2010-12-13 71 views

Répondre

0

Qu'est-ce que vous cherchez? properties est juste une liste de paires clé/valeur.

Vous pouvez aller avec des proeprties plus avancés comme XML, mais c'est plus compilé.

0

Le projet Apache Commons-Configuration dispose de diverses mises en œuvre pour lire, écrire et gérer des fichiers de configuration. Parmi ceux-ci sont propriétés plates (paires clé-valeur dans des fichiers texte), XML structuré (fichiers XML avec des noms lisibles pour les paramètres de configuration), hiérarchique, format Windows INI, JNDI, Propriétés système etc.

Ils prennent en charge les types de données de base (String, nombres, booléens), listes et convertisseurs pour les types de données personnalisés tels que les URL, les couleurs, les dates etc.

Les configurations peuvent être lues à partir de diverses sources, comme les fichiers, flux d'entrée, des représentations en mémoire, des URL, des sources de données JDBC, fichiers de listes de propriété (plist), Cordes, paramètres Applet, les paramètres de Servlet et bien sûr système Propriétés.

Les caractéristiques uniques incluent l'évaluation de l'expression XPath, les interpolateurs de variables, le rechargement automatique, les configurations observables, la validation et même le multi-tenancy.

Exemple d'utilisation:

CompositeConfiguration config = new CompositeConfiguration(); 
config.addConfiguration(new SystemConfiguration()); 
config.addConfiguration(new PropertiesConfiguration("app.properties")); 

// Some impls have special features: 
// xmlConfig.setValidating(true); 
// propsConfig.setAutoSave(true); 
// propsConfig.setReloadingStrategy(new FileChangedReloadingStrategy()); 

config.setListDelimiter('/'); 
config.addProperty("greeting", "Hello, how are you?"); 
config.addProperty("colors.graph", "#808080/#00FFCC/#6422FF"); 

String salut = config.getString("greeting"); 
String[] colGraph = config.getStringArray("colors.graph"); 
0

Jetez un oeil à OWNER API, il est mini-cadre à base d'annotation qui fait des choses intéressantes. Selon la version 1.0.3, il supporte le mappage des objets (personnalisable par l'utilisateur), la conversion automatique des types, l'expansion des variables, le chargement des propriétés de plusieurs sources avec deux politiques différentes (fusionner les fichiers ou prendre le premier) à partir des cartes (similaire à la configuration composite de la journalisation des communs).

Version 1.0.4 sera publié dès que possible et il comprendra la prise en charge des collections et des tableaux dans la conversion de type, deux saveurs de "rechargement à chaud" avec un mécanisme de notification (vous modifiez le fichier sur le disque . Toutes ces fonctionnalités sont déjà disponibles sur la branche master si vous vous sentez à l'aise pour télécharger les sources et les emballer vous-même.

Et il y a beaucoup d'autres idées sur lesquelles je travaille. Si vous avez des demandes, je suis heureux d'entendre. Voir github issues pour les autres choses sur lesquelles je travaille.