Я пытаюсь выяснить, как мое приложение Spring может определить, где оно развернуто, и загрузить соответствующий источник данных. У нас есть 3 среды... мой локальный, сервер разработки и производственный сервер. Пока у меня есть 3 файла свойств под названием
localhost.datasource.properties
development.datasource.properties
production.datasource.properties
У меня есть их conifgured вот так:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:/resources/properties/production.datasource.properties</value>
<value>classpath:/resources/properties/development.datasource.properties</value>
<value>classpath:/resources/properties/localhost.datasource.properties</value>
</list>
</property>
</bean>
<bean id="dataSourceMySQL" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
p:driverClassName="${mysql.jdbc.driver.class.name}"
p:url="${mysql.jdbc.url}"
p:username="${mysql.jdbc.username}"
p:password="${mysql.jdbc.password}" />
</beans>
Это отлично работает, когда я нахожусь на своей машине localhost. Если я развертываю военный файл для разработки, он все еще читает свойства localhost, так как он последний в списке, и я получаю сообщение об ошибке. Каков наилучший способ реализовать это?
Спасибо