2016-04-26 16 views
1

Ich schreibe eine Anwendung mit Spring MVC, die ich mit Eigenschaftendateien konfigurierbar sein möchte. Ich sah in Spring util-Namespace und fanden diese:Die beste Methode zum Verwalten von Eigenschaften in Spring

<util:properties id="MyProperties" location="propertiesPath" /> 

mit diesem, kann ich meine Klassen Feld einfach mit

@Value("myProperty") 

mit Anmerkungen versehen und haben die Eigenschaft einfach injiziert. So ist es sehr einfach, Ihre Eigenschaften zu lesen. Aber wenn Sie sie speichern müssen, ist es nicht so intuitiv.

Ich bin auf einige Fragen gestoßen, wie man es richtig macht und ich denke, das ist das Beste, was ich sagen möchte: Updating a properties file injected by Spring to include a last run timestamp.

Meine Frage ist: Warum ist es so schwierig, Eigenschaften im Frühjahr zu speichern? Tue ich es falsch? An dieser Stelle frage ich mich sogar, ob das Speichern von Eigenschaften auf diese Weise eine gute Übung ist oder ob ich eine Datenbank verwenden soll.

Von Oracle kann ich lesen:

Die Eigenschaften-Klasse stellt einen persistenten Satz von Eigenschaften. Die Eigenschaften können in einem Stream gespeichert oder aus einem Stream geladen werden.

Aber Frühling scheint nur eine von ihnen einfacher zu machen. Bitte erleuchte mich.

Vielen Dank.

Antwort

1

Spring ist weitgehend an der Erstellung der statischen, unveränderlichen Struktur Ihrer Anwendung beteiligt und nicht wirklich an der Transaktionsverarbeitung oder Geschäftslogik beteiligt. Es definiert oft, wie Transaktionen verarbeitet werden sollen, ist aber normalerweise nicht an der Verarbeitung selbst beteiligt. Wir sprechen oft von der Trennung von Domänenmodell und Architektur - im Frühling geht es um Architektur.

Etwas in einen Speicher irgendeiner Art zu schreiben, sprich Eigenschaften in eine Festplattendatei, ist Transaktionslogik (auch wenn Sie keine explizite Transaktion dazu benötigen). Es wäre eine der Endbenutzerfunktionen Ihres Systems, nicht Teil der Architektur - es wäre eine Funktion (selbst wenn der Endbenutzer in diesem Fall ein sys-admin ist). Spring unterstützt diese Art von Verhalten nur wenig - ebenso wie es wenig Unterstützung für das Speichern von Informationen zu dynamischen Änderungen im Anwendungskontext bietet.

+0

Ich mochte Ihre Antwort sehr, da sie die Rolle von Sping in einer Web-App so deutlich erklärt und meine Einstellung geändert hat. Ich würde wirklich gerne mehr lesen. Vielen Dank. – Aurasphere

Verwandte Themen