Как различить тестовые и производственные свойства в приложении?

Мы разрабатываем большое решение для электронных продаж J2ee. Он имеет множество интеграций: CMS, ERP, Почтовый сервер и т. Д. Все эти системы разделены на тестовую и производственную среды.

Нам необходимо развернуть наше приложение на наших тестовых серверах с тестовой конфигурацией, а при развертывании на наших производственных серверах оно должно использовать производственную конфигурацию. Как заставить наше приложение выбрать правильные свойства?

То, что мы до сих пор пробовали, это:

Все наши файлы свойств содержат свойства теста и производственные свойства

test.mvxapi.server = SERV100TS
test.mvxapi.username = user
test.mvxapi.password = password
test.mvxapi.port = 6006
test.mvxapi.cono = 600

mvxapi.server = SERV10001
mvxapi.username = user
mvxapi.password = password
mvxapi.port = 6001
mvxapi.cono = 100

Утилита, которая читает эти свойства, имеет переключатель: isTest (), который ставит ключ перед «quot; test».

public String getProperty(String property)
{
    return properties.getProperty(prefix + "" + property);
}

Переключатель устанавливается другим свойством, которое создается нашим сервером сборки. При сборке .EAR скрипт для наших производственных серверов внедряет (ввод в build.xml) & quot; isProduction = true & quot; в system.properties.

<propertyfile file="${buildDir}/system.properties">
        <entry  key="isProduction" value="${systemType}"/>
    </propertyfile>

Я не уверен, что это лучший способ сделать это. Если по какой-либо причине "isProduction = false" ошибочно относится к нашей производственной среде, все чертовски свободно.

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

Ответы на вопрос(6)

Ваш ответ на вопрос