BTS SIO2D
  • Accueil
  • Connexion
24 février 2025 par cdesjonqueres

[NOUVELLE LIBRAIRIE] – Kiwi

[NOUVELLE LIBRAIRIE] – Kiwi
24 février 2025 par cdesjonqueres

Table des matières

Toggle
  • INTRODUCTION
  • EXPLICATIONS
    • Pourquoi utiliser Kiwi ?
      • a) Chargement récursif des configurations
      • b) Sources de configuration multiples
      • c) Flexibilité pour l’utilisateur final
    • Fonctionnement de Kiwi
      • a) KeyValue et KeyValuesResource
      • b) Interpolation
  • CONCLUSION
  • GLOSSAIRE

INTRODUCTION

Kiwi est une bibliothèque Java de configuration d’amorçage. L’objectif principal est de faciliter le chargement et la gestion des configurations d’une application à partir de différentes sources. Dans cet article, je vais expliquer son fonctionnement, ses caractéristiques et ses cas d’utilisation pratiques.

EXPLICATIONS

Pourquoi utiliser Kiwi ?

a) Chargement récursif des configurations

Cette fonctionnalité permet de chaîner le chargement de configurations à partir de plusieurs sources sans nécessiter une gestion complexe des priorités ou des dépendances.

Schéma écrit :
URI -> valeurs clés -> URI -> Valeurs clés -> …

b) Sources de configuration multiples

Kiwi est conçu pour charger des paires clé-valeur depuis plusieurs sources, telles que :

  • Les variables d’environnement
  • Les propriétés système
  • Les fichiers JSON, HOCON, TOML, YAML, XML, ..
  • Les requêtes HTTP, argument de ligne de commande, coffres-forts, et plus encore.

L’idée est que ces différentes sources de données peuvent toutes être représentées sous la forme d’une simple paire clé-valeur, ce qui permet de les traiter de manière uniforme.

c) Flexibilité pour l’utilisateur final

Cette caractéristique permet aux utilisateurs de choisir d’où proviennent leurs configurations. Par exemple, si je travaille avec une application en ligne de commande, je pourrais spécifier que la configuration provient d’une variable d’environnement ou d’un fichier spécifique.

Fonctionnement de Kiwi

a) KeyValue et KeyValuesResource

Kiwi repose sur deux concepts principaux : KeyValue et KeyValuesResource.

  • KeyValue : Contrairement à un mappage, un KeyValue contient des métadonnées supplémentaires, telles que la source de la valeur, si la valeur a été interpolée, ou si la valeur est sensible.
  • KeyValuesResource : Une ressource de configuration qui peut être une URL, un fichier, ou même une variable d’environnement. Cette ressource est associée à des valeurs clés et peut être utilisée pour enchaîner le chargement d’autres ressources.

Les ressources sont chargées de manière récursive, et chaque KeyValue peut à son tour charger davantage de KeyValues en fonction des métadonnées associées.

b) Interpolation

Kiwi supporte l’interpolation de type Bash dans les valeurs de clé, ce qui permet d’insérer des variables dans les configurations

Exemple : message=Bonjour ${user.name:-defaultName}

Cela signifie que si « user.name » est défini, il sera utilisé ; sinon, « defaultName » sera pris à la place. Cela permet de personnaliser dynamiquement les valeurs selon l’environnement ou les variables définies ailleurs.

CONCLUSION

Kiwi est une bibliothèque Java pour gérer des configurations de manière flexible, légère et extensible. Son modèle basé sur les « clé-valeur » et la capacité de charger de manière récursive des ressources à partir de multiples sources. Kiwi permet aux utilisateurs finaux de définir d’où provient leur configuration, offrant ainsi une grande souplesse par rapport aux frameworks traditionnels de configuration.

GLOSSAIRE

Configuration d’amorçage : La configuration d’amorçage est la manière dont une application récupère ses configurations initiales avant qu’une tâche commence à s’exécuter. Ces configurations sont souvent stockées sous forme de paires de valeurs « clé-valeur », qui peuvent provenir de diverses sources comme des fichiers de propriétés, des variables d’environnement, des arguments de ligne de commande, ou même des métadonnées dans le cloud. 

Paires de valeurs « clé-valeur » (KeyValue) : Une paire clé-valeur est une association simple entre un nom (la clé) et une valeur. La clé permet d’accéder à la valeur associée.

Récursif (Kiwi) : Chaque configuration chargée peut contenir des références à d’autres configurations à charger à son tour. Le processus continue ainsi, de manière successive, jusqu’à ce que toutes les ressources soient chargées.

Mappage : (Le mappage des données est le processus consistant à faire correspondre les champs ou éléments de données d’une base de données ou source d’information à des champs similaires dans une source ou un système de destination.)

Interpolation : permet l’évaluation de variables ou d’expressions à l’intérieur d’une chaîne de caractères

URL : Uniform Resource Locator

URI : Uniform Resource Identifier, permet d’identifier des ressources.

Article précédentCybersécurité : Facebook concentre 56% des menaces liées aux réseaux sociauxArticle suivant Next.JS

About The Blog

Nulla laoreet vestibulum turpis non finibus. Proin interdum a tortor sit amet mollis. Maecenas sollicitudin accumsan enim, ut aliquet risus.

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025

Catégories

  • Article Angular Killian
  • Article Clément
  • Article Unreal Engine Hugo
  • Cybersécurité
  • IA
  • Non classé
  • Projet Flutter KHM
  • Projet Hugo
  • Stage Clément
  • Stage Hugo
  • Stage Killian P
  • TP Clément

Méta

  • Inscription
  • Connexion
  • Flux des publications
  • Flux des commentaires
  • Site de WordPress-FR

Étiquettes

Article Développer son projet professionnel Flutter Gérer son identité professionnelle Java Stage Symfony TP

Why Lander

Lander is a design prepared
especially for the free version
of Rife WordPress Theme.

You can use this for free.
Make your website today.
Get Started Now!

Contact

734 Blackwell Street
Anchorage, Alaska
info@domain.com
+33 (0) 101 0000
+33 (0) 102 0000
Mon. - Fri. 8AM - 6PM

Articles récents

projet flutter Forum28 avril 2025
Backup BDD Bash17 mars 2025
UE – TF1 se met à Unreal Engine ?17 mars 2025
Rife Wordpress Theme. Proudly Built By Apollo13