Wie kann man in einer Anwendung zwischen Test- und Produktionseigenschaften unterscheiden?
Wir entwickeln eine große J2ee E-Sales-Lösung. Es gibt viele Integrationen: CMS, ERP, Mailserver usw. Alle diese Systeme sind in Test- und Produktionsumgebungen unterteilt.
Wir müssen unsere Anwendung mit Testkonfiguration auf unseren Testservern bereitstellen, und wenn sie auf unseren Produktionsservern bereitgestellt wird, sollte sie die Produktionskonfiguration verwenden. Wie lassen wir unsere Anwendung die richtigen Eigenschaften auswählen?
Was wir bisher versucht haben, ist Folgendes:
Alle unsere Eigenschaftendateien enthalten Testeigenschaften und Produktionseigenschaften
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
Das Util, das diese Eigenschaften liest, hat einen Schalter: isTest (), der dem Schlüssel "test" voranstellt.
public String getProperty(String property) { return properties.getProperty(prefix + "" + property); }
Der Schalter wird durch eine andere Eigenschaft festgelegt, die von unserem Build-Server erstellt wird. Wenn die .EAR-Datei erstellt wird, fügt das Skript für unsere Produktionsserver (Eingabe in build.xml) "isProduction = true" in system.properties ein.
<propertyfile file="${buildDir}/system.properties">
<entry key="isProduction" value="${systemType}"/>
</propertyfile>
Ich bin mir nicht sicher, ob dies der beste Weg ist. Wenn aus irgendeinem Grund "isProduction = false" fälschlicherweise für unsere Produktionsumgebung verwendet wird, ist die Hölle los.
Ich habe gelesen, dass Leute Eigenschaften lokal auf dem Server haben. Aber wir wollen wirklich keine Dateien haben, die verteilt werden. Wir haben Cluster von Produktionsservern. Sicherzustellen, dass jeder Server über die richtige Eigenschaftendatei verfügt, scheint nicht ausfallsicher zu sein