ARender Web-UI - Spring Boot Configuration

Vue d’ensemble

ARender est construit sur Spring Boot et prend en charge le chargement de bibliothèques externes (connecteurs).

ARender Web-UI Spring Boot fournit :

  • Une configuration interne par défaut
  • Un profil dédié integrator pour des surcharges contrôlées
  • La prise en charge de la configuration externalisée ainsi que de la configuration embarquée dans un connecteur

Cette approche garantit une résolution de configuration prévisible tout en maintenant une séparation claire entre les paramètres par défaut de la plateforme et les personnalisations spécifiques au client.

Modèle de configuration par défaut

L’application est livrée avec des fichiers de configuration internes application.properties et/ou application.yml.

Ces fichiers définissent :

  • La configuration d’infrastructure
  • Le comportement par défaut de Spring Boot
  • Les propriétés système de base nécessaires au démarrage correct de l’application

Stratégie du profil Integrator

Afin de permettre des surcharges sécurisées, ARender active et inclut un profil Spring dédié :

spring.profiles.include=integrator
spring.profiles.active=integrator

Cela permet la prise en charge des fichiers application-integrator.properties et application-integrator.yml.

Le profil integrator :

  • Est chargé en complément de la configuration de base
  • Ne surcharge que les propriétés explicitement redéfinies
  • Préserve les valeurs internes par défaut pour tous les autres paramètres

Cela évite les conflits pouvant survenir lorsque plusieurs fichiers application.properties sont présents dans le classpath.

Mécanismes de surcharge pris en charge

Configuration externalisée

Mode classique (Standalone)

Placer le fichier application-integrator.properties (ou sa variante YAML) à côté du fichier JAR ARender :

arondor-arender-hmi-springboot-{VERSION}.jar
application-integrator.properties

ou

arondor-arender-hmi-springboot-{VERSION}.jar
application-integrator.yml

Spring Boot détectera automatiquement et chargera la configuration associée au profil integrator.

Docker

Placer le fichier application-integrator.properties (ou sa variante YAML) dans le répertoire /home/arender/ du conteneur arender-ui-springboot via un volume Docker.

Configuration embarquée dans un connecteur (Fat JAR)

Inclure l’un des fichiers suivants dans le JAR du connecteur :

application-integrator.properties

ou

application-integrator.yml

Étant donné que le profil integrator est actif, Spring chargera cette configuration en complément de la configuration par défaut.

Modèle de priorité des configurations

Spring Boot applique les sources de configuration selon une hiérarchie de priorité définie.

Les sources ayant une priorité plus élevée surchargent celles ayant une priorité plus faible.

Ordre de priorité (du plus faible au plus élevé)

  1. Fichier application.yml interne (dans le JAR d’ARender)
  2. Fichier application.properties interne (dans le JAR d’ARender)
  3. Fichier application-integrator.yml interne (dans le JAR du connecteur)
  4. Fichier application-integrator.properties interne (dans le JAR du connecteur)
  5. Fichier application.yml externe (en dehors du JAR d’ARender)
  6. Fichier application.properties externe (en dehors du JAR d’ARender)
  7. Fichier application-integrator.yml externe (en dehors du JAR d’ARender)
  8. Fichier application-integrator.properties externe (en dehors du JAR d’ARender)
  9. Variables d’environnement
  10. Propriétés système JVM (-D)
  11. Arguments de ligne de commande

Priorité des formats de fichiers

Lorsque les deux formats existent au même emplacement :

application.properties
application.yml

Le fichier .properties a priorité sur le fichier .yml.

Exemple

application.yml

server:
  port: 8080

application.properties

server.port=9090

Valeur effective :

server.port=9090

Diagramme de résolution de la configuration

Vue globale

                +----------------------------+
                |  Arguments ligne de commande |
                +----------------------------+
                             ↑
                +----------------------------+
                | Propriétés système JVM -D  |
                +----------------------------+
                             ↑
                +----------------------------+
                | Variables d’environnement  |
                +----------------------------+
                             ↑
                +----------------------------+
                | Config. integrator externe |
                +----------------------------+
                             ↑
                +----------------------------+
                | Config. de base externe    |
                +----------------------------+
                             ↑
                +----------------------------+
                | Config. integrator interne |
                +----------------------------+
                             ↑
                +----------------------------+
                | Config. de base interne    |
                +----------------------------+

Les blocs situés plus haut surchargent ceux situés plus bas.

Résumé

Utilisez le profil integrator en créant un fichier application-integrator.properties ou sa variante YAML afin de remplacer les configurations en toute sécurité sans compromettre la stabilité de l’application.