Wie geht man mit plattformspezifischen Variablen in Java-Anwendungen um (Test, Abnahme, Produktion usw.)?
Anwendungen benötigen häufig Ressourcen wie Datenbanken, Webservices von Drittanbietern, ldap-Server und andere externe Systeme. Es ist gängige Praxis, die Konfiguration solcher Ressourcen auszulagern. Im Falle einer Datenbankabhängigkeit ist die Verwendung einer DataSource (die die Komplexität der Konfiguration und Verbindung zur Datenbank verbirgt) ein gutes Beispiel dafür. Die Details der Konfiguration sind in den meisten Fällen plattformspezifisch. Wie können wir also die Details der Konfiguration richtig auslagern?
Im Grunde hat das Entwicklungsteam zwei Möglichkeiten:
jndi.properties verwenden, müssen Sie keinen absoluten oder relativen Pfad in Ihrem PropertyPlaceholderConfigurer fest einprogrammieren. Um unser Beispiel fortzusetzen, benötigen wir den folgenden Schlüssel-Wert-Eintrag für unsere initialDirContextFactory-Bean:
[code]ldap_address=ldap://organization.intra.local.test[/code]
Fügen Sie dieses Schlüssel-Wert-Paar der Datei jndi.properties im Verzeichnis conf Ihrer JBoss-Serverkonfiguration hinzu und verwenden Sie einen angepassten PropertyPlaceholderConfigurer, um Ihre Platzhalter aufzulösen:
[java]
public class JndiPlaceholderConfigurer extends PropertyPlaceholderConfigurer implements InitializingBean {
private Map environment;
public void afterPropertiesSet() throws Exception {
Context context = new InitialContext();
environment = context.getEnvironment();
}
protected String resolvePlaceholder(String placeholder, Properties props) {
return (String) this.environment.get(placeholder);
}
}
[/java]
Mit einer Zeile xml-Code in einer Ihrer Spring Bean-Definitionsdateien wird die Nachbearbeitung der BeanFactory-Initialisierung die Auflösung der Platzhalter übernehmen:
[xml]
[/xml]
Natürlich müssen Sie ein geeignetes Verfahren einrichten, um die umgebungsspezifischen Variablen, von denen Ihre Anwendung abhängt, an die Person/Abteilung zu übermitteln, die für die Bereitstellung der Anwendung verantwortlich ist. Derzeit beschäftige ich mich mit dem Assembly-Plugin für Maven 2 , um den Prozess der Bereitstellung von mehr als nur der einsatzfähigen Anwendungseinheit an die für die Bereitstellung von Anwendungen zuständigen Personen zu automatisieren. In meinem nächsten Blog werde ich mehr über das Assembly-Plugin erfahren und wie Sie sicherstellen, dass die Konfiguration des Anwendungsservers den Anforderungen Ihrer Anwendung entspricht.
- Erstellen Sie eine Anwendung und geben Sie die Zielumgebung an
- Externalisieren Sie die Variablen aus der einsatzfähigen Einheit
Unsere Ideen
Weitere Blogs
Contact
Let’s discuss how we can support your journey.



