Конфигурация источника данных Spring для локального хоста, разработки и производства

Я пытаюсь понять, как мое приложение Spring может определить, где оно развернуто, и загрузить соответствующий источник данных. У нас есть 3 среды ... моя локальная, сервер разработки и рабочий сервер. На данный момент у меня есть 3 файла свойств с именем

localhost.datasource.properties
development.datasource.properties
production.datasource.properties

. Я настроил их следующим образом:

    <?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, так как он последний в списке, и я получаю сообщение об ошибке. Как лучше всего это реализовать?

Спасибо

12
задан blong824 25 August 2011 в 19:47
поделиться