2016-05-25 8 views
0

Ich versuche Spring zu sagen, wo ich meine externe Datei "application.properties" finden kann. Mein letztes bereitstellbares Artefakt ist eine Kriegsdatei und ich teste mit Tomcat. Es ist KEIN ausführbares Glas mit Tomcat eingebettet. Ich habe "application.properties" in einem neuen "config" -Verzeichnis vom Root-Laufwerk oder Dateisystem abgelegt.Wie "spring.config.location" externalisieren?

Dies löst eine FileNotFoundException, wenn ich es in meiner @Configuration-Klasse platzieren.

@PropertySource(name = "spring.config.location", value = "/config", ignoreResourceNotFound = false) 

Verursacht durch: java.io.FileNotFoundException: Klassenpfad Ressource [config /] kann nicht geöffnet werden, da es nicht

Das neue Verzeichnis "config" meinem lokal existiert auf existiert Windows 7 Server und die Datei "application.properties" ist vorhanden. Was mache ich falsch?

Ich habe auch versucht, eine Windows7-Systemumgebungsvariable zu setzen, wo der Name "spring.config.location" ist und der Wert "\ config" ist. Das scheiterte auch mit dem gleichen Fehler.

Ich sollte beachten, dass meine Eltern Maven-Modul ist Spring-Boot-Starter-Eltern: 1.3.5-Release.

+0

Haben Sie den Konfigurationsort zu tomcat classpath hinzugefügt. – Shibashis

+0

Nein. Das würde ich lieber vermeiden. Ist das unbedingt notwendig? – bwfrieds

+0

Versuchen Sie, den expliziten Pfad zur Konfigurationsdatei mit file: /// c: /../config/application.properties – Shibashis

Antwort

1

Das Problem wurde mit dem folgenden Konfigurationsort "file: /// c: /../config/application.properties" gelöst.

Die Eigenschaftendatei kann von außerhalb des Klassenpfads mit der Anweisung "file:" vor dem tatsächlichen Speicherort geladen werden.

+0

Von meiner Junit-Test-Config-Klasse ... @TestPropertySource ("file: ///config/application.properties") – bwfrieds