当我创建一个Java Spring应用程序时,spring.xml配置文件通常位于src文件夹中。当我将此应用程序导出为可运行JAR时,spring.xml文件将进入JAR中。但我不希望提取jar,只想在必要时更改spring.xml的内容。配置文件位于JAR中。如何将配置文件放在JAR之外?
但是由于XML位于JAR内部,这意味着我在更改spring.xml的内容时正在更改JAR文件。如何解决这个问题? JAR外部是否有spring.xml?
当我创建一个Java Spring应用程序时,spring.xml配置文件通常位于src文件夹中。当我将此应用程序导出为可运行JAR时,spring.xml文件将进入JAR中。但我不希望提取jar,只想在必要时更改spring.xml的内容。配置文件位于JAR中。如何将配置文件放在JAR之外?
但是由于XML位于JAR内部,这意味着我在更改spring.xml的内容时正在更改JAR文件。如何解决这个问题? JAR外部是否有spring.xml?
是的,你可以把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中,其中版本化更改表示新的二进制文件。
http://stackoverflow.com/questions/775389/accessing-properties-files-outside-the-jar – daker