7
votes

Est-il possible d'inclure des fichiers de forfaits de ressources dans un ensemble de ressources

Nous utilisons java.util.resourcebundle code> pour charger des informations sur la propriété. Notre dossier de propriétés a grandi si énorme et nous envisageons de diviser le fichier de propriétés maître en plusieurs sous-modules. Est-il possible d'y parvenir?

master.properties

==> 

 master.properties
   include moduleA.properties
   include moduleB.properties


0 commentaires

3 Réponses :


1
votes

Vous pouvez toutefois construire de la ressourceBundle, mais comme vous dites que votre fichier est énorme, alors si elle est chargée dans la mémoire.

mise à jour xxx

puis pour dans locale xxx


1 commentaires

plus douloureux de faire toutes les modifications dans un seul fichier, le problème est avec le temps de développement et non avec le temps d'exécution.



1
votes

Plus de nourriture pour une pensée qu'une solution testée.

Fichiers XML Support entités au texte en ligne d'autres fichiers lors de l'analyse. Si on l'a vu des fichiers XML complexes, où cette technique a été utilisée pour modulariser les fichiers.

Propriétés prend en charge maintenant deux formats de fichiers, le format commun .properties avec des paires de touches / valeur et d'un format XML. Propriétés Peut charger et stocker sur / à partir de fichiers XML.

ResourceBundle a une sous-classe directe: propertyTresourcebundle . On dirait que cette classe est réellement limitée au format de la paire de clé / valeur plus ancienne, mais il pourrait être utilisé pour implémenter une autre classe, comme xmlpropertyresourcebundle capable de lire des propriétés à partir de fichiers XML où le Entity Trick pourrait aider à modulariser ces fichiers.

Si cela fonctionne - Transformer les fichiers de propriété existants vers des fichiers Propriétés XML doit être facile, il suffit d'utiliser la classe Propriétés , lisez du format standard et stockez sur XML.


0 commentaires

13
votes

Tout d'abord, je me demande pourquoi vous avez choisi java.util.resourcebundle code> sur java.util.properties code> . Étant donné que votre question est formulée, vous ne semblez pas se soucier de la localisation / de l'internationalisation ni de l'héritage des fichiers de paquets.

avec propriétés code> c'est extraordinaire facile car il implémente mappe code> offre à son tour un putal () code> méthode pour fusionner une autre carte. Exemple de coup d'envoi: p> xxx pré>

Si vous insistez vraiment à l'aide de ResourceBundle Code>, votre meilleur choix est de créer une ressource personnaliséBundle code> dans lequel Vous contolez le chargement par une personnalisée Contrôle code> . P>

supposant que vous avez l'entrée suivante dans maître.properties code> qui représente une chaîne de télécommande avec les noms de base des fichiers de propriétés du module: p> xxx pré>

puis la personnalisation suivante eSoldBundle code> doit fonctionner: p> xxx pré>

( La manutention et la gestion de la localisation d'exception triviale est laissée de côté, ceci est à vous) em> p>

Ceci peut être utilisé comme: p>

ResourceBundle bundle = new MultiResourceBundle("master");


0 commentaires