chose Firs à noter est cet extrait de la Javadoc
Toutes les propriétés locales (par exemple ceux qui sont ajoutés par PropertiesLoaderSupport.setProperties(java.util.Properties)
, PropertiesLoaderSupport.setLocations(org.springframework.core.io.Resource...)
et al.) Sont ajoutés en tant que PropertySource
. La priorité de recherche des propriétés locales est basée sur la valeur de la propriété localOverride
, dont est par défaut false, ce qui signifie que les propriétés locales doivent être recherchées dernière, après toutes les sources de propriétés d'environnement.
En d'autres termes, le PropertySourcesPlaceholderConfigurer
a ses propres sources locales de propriété, qu'il cherche, par défaut, après les sources de propriété enregistrés directement dans l'environnement, à savoir. une instance de type ConfigurableEnvironment
.
Le Javadoc de ConfigurableEnvironment
, dans getSystemPropeties()
et getSystemEnvironment()
, poursuit en disant que
Renvoie la valeur de System.getProperties()
si on les laisse par le courant SecurityManager
, sinon retourner une implémentation carte qui tentative d'accès individuelle touches utilisant les appels à System.getProperty(String)
.
Notez que la plupart des implémentations Environment
comprendra ce système propriétés carte comme un défaut PropertySource
à rechercher.
[...]]
Renvoie la valeur de System.getenv()
si on les laisse par le courant SecurityManager, sinon retourner une implémentation carte qui tentative d'accès à des touches individuelles à l'aide des appels à System.getenv(String)
Notez que la plupart des Environment
implémentations comprendra ce système carte d'environnement par défaut PropertySource
à rechercher.
Ces Environment
implémentations sont StandardEnvironment
, qui est ApplicationContext
cours de la valeur par défaut Spring utilisent.
Cette classe précise Javadoc
En plus des fonctions habituelles d'une ConfigurableEnvironment
telle que la résolution des biens et des activités liées au profil, cette implémentation configure deux sources de propriété par défaut, à rechercher dans l'ordre suivant:
- propriétés du système
- variables d'environnement système
C'est, si la "xyz"
clé est présente à la fois dans les propriétés du système JVM ainsi que dans l'ensemble des variables d'environnement pour le processus actuel, la valeur de la clé "xyz"
à partir des propriétés du système retournera d'un appel à environment.getProperty("xyz")
. Cette commande est choisie par défaut car les propriétés du système sont par JVM, tandis que les variables d'environnement peuvent être les mêmes sur de nombreuses machines JVM sur un système donné. La priorité des propriétés système permet de remplacer les variables d'environnement par JVM.
Ces sources de propriété sont modifiables et modifiables. Mais, pour répondre à votre question, le comportement que vous demandez est déjà fourni par défaut.
Bonne réponse. Je vous remercie. Et pour résumer: "Il étend automatiquement les variables d'environnement, par défaut". – 0xbe5077ed