Ich möchte Spring Framework in mein Projekt integrieren, insbesondere auf der Serverseite.
Ich möchte es also nicht in den WEB-INF-Ordner der Kriegsdatei legen.
Soll ich eine applicationContext.xml in jede Ebene einfügen (bedeutet, dass jedes Projekt in verschiedene Projekte unterteilt ist? (Dienste, Domäne und DAO)
Was ist die gute Praxis?
Antworten:
Die Maven-Dateistruktur kann dabei helfen
Im Wesentlichen werden die Spring-Konfigurationsdateien (die übrigens einen beliebigen Namen haben können, nicht nur die generischen
applicationContext.xml
) als Klassenpfadressourcen behandelt und unter abgelegtsrc/main/resources
. Während des Erstellungsprozesses werden diese dann in dasWEB-INF/classes
Verzeichnis kopiert, in dem sich diese Dateien normalerweise befinden.Variationen enthalten ein zusätzliches
spring
Verzeichnis (z. B.src/main/resources/spring
), um die Spring-Kontexte von anderen Ressourcen für Anwendungsframeworks zu trennen. Möglicherweise möchten Sie die Anwendungskontexte in bestimmte Ebenen aufteilen, z.und so weiter.
Was ist mit verschiedenen Umgebungen wie dev / test / production?
In der Regel sollte Ihre Spring-Konfiguration die Umgebungskonfiguration aus ihrer, ahem, -Umgebung übernehmen. In der Regel bedeutet dies, dass Sie JNDI, JDBC, Umgebungsvariablen oder externe Eigenschaftendateien verwenden, um die erforderliche Konfiguration bereitzustellen. Ich liste diese nach Präferenz auf, da JNDI im Allgemeinen einfacher zu verwalten ist als externe Eigenschaftendateien in einem kontrollierten Produktionscluster.
Im Falle von Integrationstests müssen Sie möglicherweise eine reine Test-Spring-Konfigurationsdatei verwenden. Dies würde spezielle Kontexte enthalten, die Test-Beans oder Konfigurationen verwenden. Diese befinden sich unter src / test / resources und haben möglicherweise ein
test-
Präfix, um sicherzustellen, dass sich die Entwickler ihres Zwecks bewusst sind. Eine typische Verwendung wäre, eine Nicht-JNDI-DataSource bereitzustellen, die möglicherweise eine HSQLDB-Datenbank während der automatisierten Tests erstellt und im Testfall referenziert.Im Allgemeinen sollten die meisten Ihrer Spring-Kontextdateien jedoch keine speziellen Änderungen erfordern, da sie zwischen den Ebenen verschoben werden. Es sollte der Fall sein, dass dasselbe Build-Artefakt (z. B. WAR-Datei) in dev / test / production nur mit unterschiedlichen Anmeldeinformationen verwendet wird.
quelle
Ist Ihr Projekt in Maven-Module aufgeteilt? In diesem Fall können Sie ein zusätzliches Modul nur für Konfigurationsdateien hinzufügen. Nennen wir es Config-Modul
Eine solche Konfiguration ist ein Vorschlag. Richten Sie Ihren eigenen Dateisatz ein Packen Sie ihn wie eine JAR und fügen Sie dieses Modul als Abhängigkeit von einem anderen Modul (Web, Ear's Lib, eine andere JAR) hinzu.
Sie haben Zugriff auf Konfigurationsmodulressourcen (XML, Eigenschaften usw.), da sie sich im Klassenpfad befinden.
web-module's pom
Verwenden Sie dann Importanweisungen aus externen Spring-Kontextdateien. Beispielsweise
quelle