Ho un requisito per avere tutti i nostri file di proprietà da memorizzare in una directory. La posizione di questa directory deve essere archiviata in una variabile di ambiente di sistema. Nel contesto dell'applicazione dovrò accedere a questa variabile di ambiente per creare il bean FileSystemResource. Ecco un esempio di quello che normalmente si sarebbero:Posso utilizzare una posizione basata su variabile di ambiente per Spring FileSystemResource?
<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>
Invece ho bisogno di farlo essere qualcosa di simile a
<value>${prop_file_location}/myprops.properties</value>
Dove posizione del file prop è una variabile di ambiente. Qualcuno sa un modo semplice per farlo?
Sto usando la primavera 2.5.6 e Java 1.6
Credo potuto utilizzare la System.getenv (String envname) per restituire il valore. Ma non sono sicuro di poter chiamare quel metodo nel contesto dell'applicazione? – predhme
['@ PropertySources' nella primavera 4] (http://www.jayway.com/2014/02/16/spring-propertysource/) fornisce un modo di configurazione basato su Java per fare ciò:' @Configuration @PropertySources ({ @PropertySource ("default.properties"), @PropertySource (value = "file: $ {} CONF_DIR /optional-override.properties", ignoreResourceNotFound = true) } public class ApplicationConfig {} ' – chrisjleu