Ich habe eine Anforderung, alle unsere Eigenschaftendateien in einem Verzeichnis gespeichert zu haben. Der Speicherort dieses Verzeichnisses sollte in einer Systemumgebungsvariablen gespeichert werden. In meinem Anwendungskontext muss ich auf diese Umgebungsvariable zugreifen, um das FileSystemResource-Bean zu erstellen. Hier ist ein Beispiel dafür, was ich normalerweise haben:Kann ich einen Umgebungsvariablen-basierten Speicherort für Spring FileSystemResource verwenden?
<bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<bean class="org.springframework.core.io.FileSystemResource">
<constructor-arg>
<value>myprops.properties</value>
</constructor-arg>
</bean>
</property>
</bean>
Stattdessen werde ich brauchen, um es so etwas wie
<value>${prop_file_location}/myprops.properties</value>
sein Wo prop Dateipfad eine Umgebungsvariable ist. Kennt jemand einen einfachen Weg, dies zu tun?
Ich bin mit Feder 2.5.6 und Java 1.6
ich Ich denke, das System.getenv (String envname) nutzen könnten, um gib den Wert zurück. Aber ich bin mir nicht sicher, ob Sie diese Methode im Anwendungskontext aufrufen können? – predhme
['@ PropertySources' in Spring 4] (http://www.jayway.com/2014/02/16/spring-propertysource/) gibt Ihnen eine Java-basierte Konfigurationsmethode, um dies zu tun:' @Configuration @PropertySources ({ @PropertySource ("default.properties"), @PropertySource (value = "file: $ {} CONF_DIR /optional-override.properties", ignoreResourceNotFound = true) } public class ApplicationConfig { } ' – chrisjleu