В последнее время возникло требование перенести настройки базы данных из Spring applicationContext.xml.Поэтому мы хотели, чтобы файл jdbc.properties находился вне встроенных jar-файлов, чтобы пользователь мог легко изменить 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?
Заранее спасибо!