Ich möchte meine Config-Dateien vollständig externalisieren, so dass jede * .properties-Datei in/etc/foo /.Springboot @PropertySource mit --spring.config.location =/etc/foo/
Aber ich will nicht alles in einer großen application.properties, also teile ich bestimmte Teile in einzelne * .properties Dateien auf.
Wie kann ich @PropertySource mitteilen, dass es den Speicherort der angegebenen Eigenschaftendatei genauso auflösen soll wie für seine application.properties, dh suche in jedem direkt (könnte mehrere sein), den ich mit "-" angegeben habe - spring.config.location "?
Meine Klasse würde auf diese Weise ideal aussehen:
@Configuration
@PropertySource("dpuProfiles.properties")
@ConfigurationProperties("dpu.profiles")
public class DpuProfilesConfiguration {
...
}
Es funktioniert, wenn ich explizit angeben "file: /etc/foo/dpuProfiles.properties". Ich konnte nicht "$ {spring.config.location} /dpuProfiles.properties" oder ähnliche Ersetzung mit EL arbeiten. Macht wahrscheinlich auch keinen Sinn, da die Variable mehrere Verzeichnisse enthalten könnte.
Die Verwendung von/etc/foo als Classpath-Verzeichnis war eine gute Idee. Meine @ConfigurationProperites war jedoch korrekt, da es das Präfix der Eigenschaft und nicht den Dateinamen als Parameter erhält. Zusätzlich habe ich/etc/foo zu meinem in pom.xml hinzugefügt, so dass "mvn test" sie immer noch findet. –
lathspell