Properties in Spring 4 und Spring Boot

In Spring kann man zur Konfiguration eines Projektes unter anderem Properties welche in Property Dateien definiert sind verwenden. Im einfachsten Fall ist dies eine simple Text-Dateien mit Einträgen [name]=[Wert]. Es können aber auch YAML-Dateien oder Kommandozeilen-Parameter sein. Egal woher die Parameter kommen, sie werden automatisch als Properties zusammengefasst und können dann zum konfigurieren z.B. der Datenbank-Einstellungen, Mail-Server-Einstellungen und ähnliches verwendet werden.

Definition in der XML-Konfiguration

Zum einen kann man die Datei mit den Konfigurationswerten in der XML-Konfiguration angeben, in dem man den <context:property-placeholder ..> Tag verwendet:

In der Datei db.properties können dann Werte für den DB-Zugriff folgendermaßen definiert sein:

Über Java-Annotation

Bei Java-basierter Konfiguration kann bei der @Configuration-Annotation über die @PropertySource-Annotation eine Datei angegeben werden:

Oder man gibt dem PropertySourcesPlaceholderConfigurer-Objekt die Datei an:

Spring Boot

Spring Boot vereinfacht die Verwendung von Properties unter anderem, indem es Standard-Dateien gibt, welche automatisch verwendet werden. So genügt es z.B. einfach eine application.properties in unser /src/main/Resources-Verzeichnis zu geben, und diese Datei wird dann automatisch gelesen.

Eine genauere Beschreibung der verschiedenen Möglichkeiten die Properties in Spring Boot zu definieren, kann unter https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html nachgelesen werden.

Verwendung

Die Properties können einerseits in der XML-Konfiguration verwendet werden, z.B.:

Andererseits kann auf die Werte mittels @Value-Annotation zugegriffen werden (siehe auch http://www.codersblog.de/werte-aus-spring-properties-verwenden/)