Cette page définit le vocabulaire de configuration tel que Ravel le matérialise. Le modèle suit MicroProfile Config 3.1 ; chaque concept renvoie à un approfondissement dédié, et les choix d’implémentation sont décrits dans Internes.
Config
Un Config est la vue unifiée et en lecture seule qu’une application interroge via ConfigProvider.getConfig(). Il agrège chaque source enregistrée, applique la précédence par ordinal, résout les expressions et convertit les valeurs vers le type demandé. Un Config est obtenu par class loader et mis en cache.
ConfigSource
Une source de configuration est une origine de paires clé/valeur brutes : propriétés système, variables d’environnement, microprofile-config.properties, ou toute source personnalisée fournie via la SPI. Chaque source possède un ordinal qui définit la précédence — l’ordinal le plus élevé l’emporte. Voir Sources de configuration.
| Source intégrée | Ordinal par défaut |
|---|---|
Propriétés système |
400 |
Variables d’environnement |
300 |
|
100 |
Converter
Un convertisseur transforme une String brute en valeur typée. Ravel fournit des convertisseurs pour les primitifs, types boxés, String, URL, URI, InetAddress, types temporels (Duration, Period), énumérations, tableaux et collections, ainsi que des convertisseurs implicites pour tout type exposant un constructeur public, valueOf() ou parse(). Les convertisseurs personnalisés sont enregistrés via la SPI avec une priorité. Voir Convertisseurs de types.
Expression de propriété
Une expression de propriété référence une autre valeur de configuration avec ${key}, avec une valeur par défaut optionnelle via ${key:default}. Les expressions sont résolues au moment de la lecture et une détection de cycle empêche les boucles infinies. Voir Expressions de propriété.
Profil de configuration
Un profil de configuration restreint des propriétés à un environnement via un préfixe %dev., %prod. ou %test.. Le profil actif est sélectionné via mp.config.profile et résolu au moment de la lecture, pas au build. Voir Profils de configuration.
Intégration CDI
Dans un déploiement CDI, les valeurs de configuration sont injectées avec @ConfigProperty("key") sur un champ de bean — y compris les enveloppes Optional<T> et Supplier<T>. La découverte est pilotée par une Build Compatible Extension Vauban ; l’usage autonome (hors CDI) reste disponible via ConfigProvider.getConfig(). Voir Intégration CDI.
Ordinal et précédence
Lorsqu’une même clé existe dans plusieurs sources, la valeur de la source au plus haut ordinal l’emporte. Cela permet aux variables d’environnement de surcharger les valeurs par défaut empaquetées, et aux propriétés système de surcharger les deux. La précédence est déterministe et calculée à la lecture.
Approfondissements
-
Sources de configuration — sources intégrées et personnalisées via la SPI.
-
Convertisseurs de types — convertisseurs intégrés et personnalisés.
-
Expressions de propriété — référencer et composer des valeurs.
-
Profils de configuration — paramètres spécifiques à l’environnement.
-
Intégration CDI — injecter des valeurs avec
@ConfigProperty.