dans Spring.config, puis-je définir un objet de type chaîne?
-
03-07-2019 - |
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.
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.