2012-06-11 110 views
1

当我创建一个Java Spring应用程序时,spring.xml配置文件通常位于src文件夹中。当我将此应用程序导出为可运行JAR时,spring.xml文件将进入JAR中。但我不希望提取jar,只想在必要时更改spring.xml的内容。配置文件位于JAR中。如何将配置文件放在JAR之外?

但是由于XML位于JAR内部,这意味着我在更改spring.xml的内容时正在更改JAR文件。如何解决这个问题? JAR外部是否有spring.xml?

+0

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

回答

0

是的,你可以把spring.xml出JAR的,然后你就可以在几个方面从你的应用程序中引用它,无论是作为使用file:资源或与classpath:类路径。

例如,在web.xml你现在可以这样做:

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

...或:

<!-- 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> 

UPDATE

请注意,我在回答你的问题,但会推荐使用PropertyPlaceholderConfigurer来代替(假设您只想更改属性)。否则,如果您的上下文将从根本上改变,那么您最好将其保存在JAR中,其中版本化更改表示新的二进制文件。

+0

但我必须事先知道文件:/tmp/spring.xml,对吧? – CodeBlue

+0

我相信你也可以做一个相对的位置,但我不记得我的头顶相对于什么。 – opyate

相关问题