【发布时间】:2011-06-17 05:34:15
【问题描述】:
最近出现了将数据库设置外包给 Spring applicationContext.xml 的要求。因此,我们希望在构建的 jar 之外有一个 jdbc.properties 文件,以便用户可以轻松更改 jdbc.settings。到目前为止,在 Eclipse 工作区中一切正常,但是一旦我用 ant 构建发行版,applicationContext.xml 就再也找不到 jdbc.properties。
applicationContext.xml 如下所示:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
在 Eclipse 中,我使用了以下类路径,因此会找到 jdbc.properties(放置在 Eclipse 项目文件夹“config”中):
类路径文件:
<classpath>
...
<classpathentry kind="src" path="config"/>
...
</classpath>
直到这里一切正常。现在我用 Ant 构建项目。 project.jar 被创建,它旁边还有一个单独的配置文件夹以及其中的 jdbc.properties 文件。在 Manifest.mf 中有一个条目:
config/jdbc.properties
但是当我现在启动服务器时,找不到 jdbc.properties。我注意到,当我将 Manifest.mf 条目更改为:
config/.
它又可以正常工作了。但我不明白为什么这是不同的。谁能解释我这种行为?或者甚至可能知道我做错了什么?显然我必须以某种方式更改 Ant 文件,所以他只是在清单文件中添加了 config 文件夹,而不仅仅是 jdbc.properties 文件本身?
提前谢谢你!
【问题讨论】:
标签: java spring ant properties classpath