2012-06-11 6 views
1

Lorsque je crée une application Java Spring, le fichier de configuration spring.xml se trouve généralement dans le dossier src. Lorsque j'exporte cette application en tant que fichier JAR exécutable, le fichier spring.xml est placé dans le fichier JAR. Mais je ne veux pas que le pot soit extrait et je veux seulement que le contenu de spring.xml soit changé si nécessaire.Le fichier de configuration se trouve dans le fichier JAR. Comment mettre le fichier de configuration en dehors du JAR?

Mais puisque le XML est dans le fichier JAR, cela signifie que je modifie le fichier JAR lorsque je modifie le contenu de spring.xml. Comment contourner cela? Est-il possible d'avoir le spring.xml en dehors du JAR?

+0

http://stackoverflow.com/questions/775389/accessing-properties-files-outside-the-jar – daker

Répondre

0

Oui, vous pouvez prendre le spring.xml hors du JAR, et vous pouvez faire référence à partir de votre application de plusieurs façons, que ce soit en tant que ressource en utilisant file: ou sur le chemin de classe avec classpath:.

Par exemple, dans web.xml vous pouvez maintenant faire:

<!-- if spring.xml is on the classpath --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath*:spring.xml</param-value> 
</context-param> 

... ou:

<!-- if spring.xml is at a known location --> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>file:/tmp/spring.xml</param-value> 
</context-param> 

MISE À JOUR

S'il vous plaît noter que je réponds à votre question, mais recommanderait d'utiliser un PropertyPlaceholderConfigurer à la place (en supposant que vous voulez seulement changer les propriétés). Sinon, si votre contexte change fondamentalement, vous pouvez aussi le conserver dans le fichier JAR où les modifications versionnées indiquent un nouveau binaire.

+0

Mais je devrais connaître le fichier: /tmp/spring.xml à l'avance, non? – CodeBlue

+0

Je suis sûr que vous pouvez faire un emplacement relatif aussi, mais je ne me souviens pas du haut de ma tête par rapport à quoi exactement. – opyate

Questions connexes