In meinem Projekt verwende ich derzeit application.yml
für die Konfiguration. Spring Initializr generieren application.properties
? Was sind die Vor- und Nachteile für jeden einzelnen?
Antworten:
Nun, es sind nur verschiedene Datenformate. Welches ist schöner und leichter zu lesen? Das ist natürlich subjektiv. Hier ist ein nützlicher Blog-Beitrag.
spring-boot
Beachten Sie bei der Konfiguration, dass es nur einen dokumentierten Mangel bei der Verwendung gibt YAML
. Gemäß der Dokumentation :
YAML-Dateien können nicht über die
@PropertySource
Annotation geladen werden . Für den Fall, dass Sie Werte auf diese Weise laden müssen, müssen Sie eine Eigenschaftendatei verwenden.
application.yaml
als auch eine bietet application.properties
? Kann ich das Zeug einfach in das .yaml
eine verschieben .properties
(Format nach Bedarf ändern) und erwarten, dass die Dinge weiterhin auf die gleiche Weise funktionieren?
Schöne Frage, ich bin auch sofort damit verwechselt.
Kommt auf den Punkt, Nach meinem Wissen sind folgende Unterschiede,
1.) .properties-Datei: Sie speichert Daten im sequentiellen Format. .yml-Datei: Speichert Daten in hierarchischem Format.
2.) .properties-Datei: Sie unterstützt nur Schlüssel-Wert-Paare, im Wesentlichen Zeichenfolgenwerte. .yml-Datei: Unterstützt Schlüssel-Wert-Paare sowie Karten-, Listen- und Skalartypwerte .
3.) .properties-Datei: Diese Datei wurde speziell für JAVA verwendet. .yml-Datei: Dieser Dateityp wird von vielen Sprachen wie JAVA, Python, ROR usw. verwendet.
4.) Wenn Sie mehrere Profile verarbeiten möchten, .properties-Datei: In diesem Fall müssen Sie für jedes Profil eine eigene Datei verwalten. .yml-Datei: In diesem Dateityp müssen Sie nur eine einzelne Datei verwalten und Konfigurationsdaten eines bestimmten Profils darin ablegen .
5.) Für Spring-Projekte
unterstützt die Datei .properties file: @PropertySource
annotation diesen Dateityp.
.yml-Datei: Die Annotation @PropertySource kann diesen Dateityp nicht unterstützen.
Derzeit weiß ich nur über diese Punkte Bescheid !!!
.properties file
: Kann Schlüssel-Wert-Paare sowie Karten-, Listen- und Skalartypwerte unterstützen. + Punkt 3 .properties file
kann mit jeder Sprache verwendet werden
Ein bemerkenswerter Unterschied besteht darin, wie die Eigenschaften in jeder Datei dargestellt werden. YAML-Dateien können konsistente Leerzeichen verwenden, um die Hierarchie zu kennzeichnen, während die Eigenschaftendatei = verwenden kann, um Eigenschaftswerte zu bezeichnen.
Zum Beispiel.
Listen werden in YAML hierarchisch dargestellt:
Überschriften:
- user-agent
- x-wag-diagonalsize
Listen können als Inline-Liste (durch Kommas getrennt) in einer Eigenschaftendatei dargestellt werden:
headers = user-agent, x-wag-diagonalsize
Ein weiterer Unterschied besteht darin, dass wir mehrere Konfigurationsdateien zu einer einzelnen Yaml-Datei hinzufügen können.
Zum Beispiel können wir application.yaml (anwendungsspezifische Eigenschaften) und bootstrap.yaml (serverspezifische Eigenschaften) zu einer einzigen config.yaml-Datei hinzufügen