![[17.0.0.3 and later]](../ng_v17003plus.gif)
Emplacements des valeurs de configuration valides dans l'environnement d'exécution Liberty
Les sections suivantes décrivent les emplacements des valeurs de configuration valides dans l'environnement d'exécution Liberty.
Variables d'environnement
Toutes les variables d'environnement de processus sont incluses dans un API MicroProfile Config lorsque des sources par défaut doivent être incluses. Liberty expose les variables d'environnement des processus hôte à la méthode Java™ System.getenv() et ajoute en plus des propriétés venant du fichier server.env du serveur, qui à leur tour sont disponibles dans l'API MicroProfile Config. Les variables d'environnement sont incluses au niveau de la priorité ordinale 300.
Les propriétés obtenues du fichier server.env de Liberty sont transmises à l'implémentation de l'API MicroProfile à l'aide de variables d'environnement du système d'exploitation. Seules les propriétés ayant des noms de variables d'environnement valides dans l'environnement hôte peuvent être obtenues du fichier server.env. Par exemple, les environnements Linux ne prennent pas en charge les points (.) dans les noms de variables d'environnement, de sorte que les noms de propriétés comme user.name ne sont pas pris en charge dans le fichier server.env.
Propriétés système
Toutes les propriétés système Java disponibles via System.getProperties() sont incluses dans une configuration d'API MicroProfile Config lorsque des sources par défaut doivent être incluses. Liberty ajoute des propriétés du fichier bootstrap.properties du serveur aux propriétés système Java. Les propriétés système sont incluses au niveau de la priorité ordinale 400.
Emplacements du fichier MicroProfile Config
Si des propriétés par défaut doivent être ajoutées, l'API Microprofile Config charge les propriétés des fichiers ${CLASSPATH}/META-INF/microprofile-config.properties à l'aide de l'unité d'exécution ContextClassLoader ou d'un ClassLoader fourni par l'utilisateur. Pour une application Liberty, l'emplacement META-INF peut être un sous-répertoire situé à la racine d'un fichier JAR ou WAR, ou dans un JAR du répertoire lib d'un fichier EAR, ou dans un fichier JAR de la bibliothèque partagée de niveau serveur. Les valeurs de propriétés obtenues du fichier de propriétés sont chargées au niveau de la priorité ordinale 100.
Sources chargées Java ServiceLoader
Les sources de configuration peuvent être enregistrées par programmation à l'aide de l'API documentée sur le site du projet MicroProfile Configuration. Le modèle Java ServiceLoader peut également être utilisé pour localiser des objets de source de configuration qui sont dynamiquement découverts et chargés en phase d'exécution.
Portée des valeurs de configuration
Les sources de configuration sont chargées au moyen du code ClassLoader à l'aide de la méthode loadResources() et par le biais du modèle Java ServiceLoader. Par conséquent, la portée des valeurs de configuration reflète celle des classes Java dans Liberty. Les valeurs de configuration provenant du fichier WAR d'une application ne sont généralement pas accessibles dans d'autres fichiers WAR même si ces valeurs de configuration appartiennent au même serveur ou au même assemblage d'application EAR. La configuration peut être partagée à travers un fichier EAR en plaçant un fichier ${CLASSPATH}/META-INF/microprofile-config.properties dans un fichier JAR dans le répertoire lib du fichier EAR. Les valeurs de configuration peuvent être partagées à travers un serveur Liberty en les plaçant dans le fichier server.env ou en utilisant un élément library dans le fichier server.xml avec une référence commonLibrary correspondante pour les applications qui ont besoin d'utiliser les valeurs de configuration communes.