Как иметь разные контекстные конфигурационные файлы для разных сред весной MVC

На моей локальной машине я занимаюсь разработкой с использованием определенного db (sql server), однако при развертывании в среде разработки мы запускаем mysql. Поэтому каждый раз перед развертыванием я должен изменить определенные свойства в файле конфигурации. Свойства, относящиеся к источнику данных:

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://127.0.0.1:3306/mydb" />
    <property name="username" value="myuname" />
    <property name="password" value="mypwd"/>   
</bean>

Есть ли способ весной mvc иметь разные файлы конфигурации для разных сред? Если это так, как бы я запустить правильный XML для правильной среды.

2 ответа

Решение
spring mvc to have different config files for different environments?

мы сохраняем настройки подключения к базе данных в файле свойств в tomcat, каждая установка tomcat имеет свое собственное конкретное соединение с БД. Например, локальное устройство dev подключается к локальному серверу БД, сервер UAT подключается к UAT ... и так далее.

тогда в контексте приложения мы имеем:

<context:property-placeholder location="file:${catalina.home}/conf/database_UAT.properties"
                                  ignore-unresolvable="true"/>

То, где приложение будет развернуто, определяет его соединение с БД.

Я думаю, что иметь разные конфигурационные файлы только для этого требования не очень хорошая идея. Вы должны отобразить конфигурацию БД в файле свойств с двумя различными наборами: один для dev и второй для производства. а затем используйте пружину EL в файле конфигурации, чтобы решить, какой из них использовать.

Обратитесь к документации EL для более подробной информации.

Другие вопросы по тегам