La lecture d'une propriété dynamique de la carte Printemps managed bean
J'ai un fichier de propriétés comme ceci:
my.properties file:
app.One.id=1
app.One.val=60
app.Two.id=5
app.Two.val=75
Et j'ai lu ces valeurs dans une propriété de carte dans mon haricot au Printemps de fichier de config comme ceci:
spring-config.xml:
<bean id="myBean" class="myClass" scope="singleton">
<property name="myMap">
<map>
<entry key="${app.One.id}" value="${app.One.val}"/>
<entry key="${app.Two.id}" value="${app.Two.val}"/>
</map>
</property>
</bean>
De cette façon, si j'ajoute une nouvelle id/val pour le fichier de propriétés, je dois ajouter une ligne dans le fichier config xml afin d'avoir la nouvelle carte d'identité/val myMap.
Ma question est, est-il un moyen de spécifier la clé-val paires au printemps fichier de configuration de sorte que le nombre de clés-vals défini en xml peuvent comprendre les éléments dans le fichier de propriétés et de créer une carte. Fondamentalement, je veux utiliser ce fichier xml dans différents environnements où nous utilisons différentes certain nombre d'éléments de valeur dans le fichier de propriétés. Je ne veux pas modifier le fichier xml dans chaque environnement, à lire dans l'ensemble de ces valeurs.
Laissez-moi savoir si vous avez besoin d'autres détails. Toutes les pensées/les commentaires sont appréciés. Merci!
OriginalL'auteur kriver | 2013-02-07
Vous devez vous connecter pour publier un commentaire.
C'est fait avec le Printemps EL et le traitement personnalisé.
C'était juste intéressant pour moi d'essayer. Il fonctionne 🙂
application.xml
Utils.java
Hello.java
valeurs.propriétés
OriginalL'auteur Vitaly
Peut-être que je ne comprend pas totalement la question ici...
Quid d'une approche simplifiée?
Le Contexte De L'Application
Java Bean
OriginalL'auteur Haim Raman
C'est un classique problème d'environnement.
Il y a deux façons de le faire:
Depuis Bien EST-UNE Carte, je ne vois pas pourquoi pas. Essayez-la.
OriginalL'auteur duffymo
Je n'ai pas trouver un moyen idéal pour résoudre ce problème d'avoir carte dynamique propriété en lecture dans la configuration spring info. À l'aide de DB était pas une option pour nous. C'est ce que j'ai trouvé pour être la meilleure alternative à cela:
Utiliser un format standard pour la carte de la paire clé/valeur dans le fichier de propriétés
par exemple: key1 | val1, key2 | val2, clé3 | val3, ..., keyn | valn
Lire une Chaîne de propriété ou de propriété de Liste dans la configuration bean comme ici: Utilisez de la Ficelle à la Liste
Laisser injecté classe java de diviser les éléments en carte dans setter.
Je vais marquer cette réponse. Si quelqu'un a de meilleures façons de le faire, en commentaire et je vais le changer pour répondre.
OriginalL'auteur kriver