Question

Puis-je faire quelque chose comme ça:

  <object id="mydb" type="string">
    <value>"blah"</value> <-- note that <value> tag does not really exist
  </object>

Pour que je puisse l'utiliser plus tard, comme ceci:

  <object id="Someobject" type="Sometype">
    <property name="ConnectionString" ref="mydb"/>
  </object>

EDIT: c’était la solution SpringFramework.NET que je recherchais. On dirait que PropertyPlaceholderConfigurer existe aussi. Merci à tous.

Était-ce utile?

La solution

Utilisez le composant intégré de Spring PropertyPlaceholdConfigurer :

<bean id="PropertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
   <property name="location" value="classpath*:/application.properties"/>
</bean>

 <bean id="Someobject" class="somepackage.Sometype">
   <property name="connectionString" value="${mydb}"/>
 </bean>

La définition de SYSTEM_PROPERTIES_MODE_OVERRIDE permet de remplacer la propriété via la ligne de commande.

Autres conseils

Utilisez des espaces réservés, par exemple $ {magic} , puis définissez la clé / valeur dans un fichier de propriétés avec un post-processeur. Google pour espace réservé du postprocesseur de printemps ...

Je ne vois aucun avantage à votre façon de faire. C'est tout simplement la configuration.

Parfois, les personnes externalisent les chaînes de connexion à la base de données dans un fichier .properties et les obtiennent de cette manière. Je pense que cela a plus de sens que votre proposition.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top