Comment collecter des propriétés de printemps à partir de plusieurs fichiers à utiliser sur un seul haricot
Je n'ai pas obtenu ma tête enroulée autour de Printemps encore, donc corrigez-moi si cette question n'a pas de sens...
J'ai un PropertyPlaceholderConfigurer
<bean id="rdbmPropertiesPlacholder" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
<property name="location" value="classpath:/properties/rdbm.properties" />
</bean>
Et j'ai un haricot d'être injectés je suppose?
<bean id="PortalDb" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${hibernate.connection.driver_class}" />
<property name="url" value="${hibernate.connection.url}" />
<property name="username" value="${hibernate.connection.username}" />
<property name="password" value="${hibernate.connection.password}" />
...
Ce que je veux, c'est un deuxième espace réservé pointant vers un autre fichier de propriétés avec le nom d'utilisateur/mot de passe afin que je puisse diviser les propriétés dans deux fichiers différents. Ensuite, la base de données les informations de connexion peuvent être séparés de la db nom d'utilisateur/mot de passe, et je peux le contrôle de la source de l'un et pas l'autre.
J'ai essayé de coeur de la copie de la rdbmPropertiesPlaceholder avec un id différent et fichier et en essayant d'accéder aux propriétés, mais il ne fonctionne pas.
Ce code est à partir de la uPortal open source projet de portail web.
source d'informationauteur Sam Hoice
Vous devez vous connecter pour publier un commentaire.
À l'aide de cette notation permet de spécifier plusieurs fichiers:
La propertyplaceholderconfigurerer juste fusionne tous ces à regarder comme il n'y a qu'un seul, de sorte que votre bean définitions ne sais pas où les propriétés viennent.
De l'org.springframework.les haricots.usine.config.PropertyPlaceholderConfigurer peut le faire (comme déjà répondu. Ce que vous devez faire est de faire usage du nom de l'espacement, de sorte que vous pouvez vous référer à la même nom des propriétés à partir de deux fichiers sans ambiquity. Pour votre exemple, vous pouvez faire ceci:
Dans votre contexte de fichiers, vous pouvez maintenant faire référence à des propriétés générales avec ${someproperty}et reportez-vous à rdbm propriétés avec $db{someproperty}.
Cela rendra votre contexte des fichiers beaucoup plus propre et plus clair pour le développeur.