Как иметь разные контекстные конфигурационные файлы для разных сред весной 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 для более подробной информации.