2017-10-10 19 views
0

Je suis en train d'utiliser une variable d'environnement dans un fichier de propriétés de printemps, mais il ne semble pas fonctionnervariable d'environnement dans le fichier de propriété Spring

où l'application est en cours d'exécution

export TEST_VAR=hello 

myapp.properties

test.variable=${TEST_VAR} 
enter code here 

mais quand je test, le test.variable ne se traduit pas bonjour mais reste $ {} TEST_VAR.

Comment puis-je obtenir la variable Env à partir de ce fichier?

je charge le fichier de propriétés ainsi

<bean id="props" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="singleton" value="true" /> 
    <property name="ignoreResourceNotFound" value="false" /> 
    <property name="locations"> 
     <list> 
     <value>classpath:myapp.properties</value> 
     <value>file://#{systemProperties['myApp.configurationFile']}</value> 
     </list> 
    </property> 
    </bean> 

<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer"> 
    <property name="properties" ref="props" /> 
    </bean> 

    <bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="properties" ref="props" /> 
    </bean> 

myApp.configurationFile est une variable système je passe quand tomcat démarre par -DmyApp.configurationFile = ...

+0

Dans la pratique, je ne vois aucun problème apparent. Vous devez fournir un MCVE: un exemple minimal, complet et vérifiable. Voir https://stackoverflow.com/help/mcve – davidxxx

+0

C'est littéralement la seule chose que je fais moins la façon dont j'indique au printemps comment, ou le fichier de propriété. Je l'ai ajouté à la poste. – Paulus2

Répondre

0

Ajouter au titulaire du lieu de configuration correction de mon problème

<property name="searchSystemEnvironment" value="true" /> 
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />