Wo soll Konfiguration platziert werden?
-
27-09-2019 - |
Frage
Ich habe eine Anwendung wie folgt aufgebaut:
- dao
- Domäne
- main
- Dienste
- utils
Ich habe eine Klasse gemacht, die die Anwendungskonfiguration aus einer XML-Datei liest. Die Frage ist, wo soll es platziert werden?
Mit dem Reflex, ich habe es in Dienstprogramme platziert, aber Utility-Klassen haben statische Methoden und sind staatenlos, während diese Klasse eine Instanz von Apache Commons XMLConfiguration verwendet. Soll ich die Methoden einfach anpassen, um diese Instanz zu den Bereichen der Methoden in dieser Klasse beschränkt ist?
Lösung
gehe ich davon aus den Gegenständen Pakete sind, so dass ich mit dem Haupt Paket gehen würde.
- dao
- Domäne
- Haupt enthält die Anwendung und deren Konfiguration Leser
- Konfiguration
- log
- Dienste
- utils
Warum? Die Konfiguration einer Anwendung, sei es in XML sein oder nicht und ob es basiert auf einem Anwendungs-Framework wie Spring oder nicht, ist Teil seiner Hauptfunktionalität. Booting eine Anwendung auf die Hauptverantwortung für die Anwendung. Alle der Business-Funktionalität, die alle der glänzenden Features, die es in dem Bereich und Service-Layer implementiert bereitstellt.
Du hast Recht, utils dreht sich alles um statische oder ähnliche Werkzeuge. Da die Konfiguration einer Anwendung sehr wichtig ist, würde ich es nicht ein Dienstprogramm erklären. Ein Dienstprogramm ist etwas, das kann leicht durch ein anderes Dienstprogramm gleichen Typs ersetzt werden (z StringUtil
vs. StringUtils
vs. IOUtils
usw. Sie alle haben sehr ähnliche Funktionalität)
Andere Tipps
Dies ist abhängig von dem Build-System und Anwendungstyp Sie verwenden i.g. Maven würde configfiles in src / main platzieren vorschlagen / Ressourcen
In WAR-Datei könnte man sich in WEB-INF platzieren oder WEB-INF / config
Nach Ihrer Projektstruktur würde ich vorschlagen, einen Ordner Config oder Ressourcen einzuführen, da fast jeder sie dort erwarten würde.
Wenn Sie mit Frühling arbeiten, werfen Sie einen Blick auf Konfiguration Platzhalter . Sie können eine einfache Java-Properties-Datei für Ihre Konfigurationseigenschaften verwenden und auf Ihrem Klassenpfad setzen (oder einen beliebigen anderen Ort). Alsou Sie Ihre eigene Implementierung schaffen könnte eine andere Form zu halten Ihre Konfigurationswerte (XML, Datenbanken usw.).
zu verwenden,Als Konfiguration ist ein Querschnitt Aspekt nicht ausschließlich diese Schichten zu einem abbildet. Legen Sie die Konfigurationsdateien (XML oder Eigenschaften) in den Classpath und verwenden Sie es über Spring Ihre Bohnen zu konfigurieren.
Eigenschaften auf Basis von Konfigurationsdaten der PropertyPlaceholderConfigurer ist eine gute Lösung.
Ich fordere Sie einen Blick auf Frühling zu haben. Könnte wie übertrieben scheinen für Sie an erster Stelle, aber Sie wil es lieben.