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

META-INF/microprofile-config.properties

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

Voir aussi

  • Usage — configuration programmatique avec ConfigBuilder.

  • Internes — structure des modules et conception.

  • Référence — surface d’API complète.