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é
integratorpour 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é)
- Fichier
application.ymlinterne (dans le JAR d’ARender) - Fichier
application.propertiesinterne (dans le JAR d’ARender) - Fichier
application-integrator.ymlinterne (dans le JAR du connecteur) - Fichier
application-integrator.propertiesinterne (dans le JAR du connecteur) - Fichier
application.ymlexterne (en dehors du JAR d’ARender) - Fichier
application.propertiesexterne (en dehors du JAR d’ARender) - Fichier
application-integrator.ymlexterne (en dehors du JAR d’ARender) - Fichier
application-integrator.propertiesexterne (en dehors du JAR d’ARender) - Variables d’environnement
- Propriétés système JVM (
-D) - 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.