2.5.2. Remplacement de propriété basée descripteur


La configuration d'application - par exemple, les paramètres de connexion de la source de données - varient normalement entre le développement, les tests, et les déploiements de production. Cette variation est parfois accommodée par les build system scripts, car la spécification Java EE ne contient pas de méthode pour externaliser ces configurations. Dans JBoss EAP 6, vous pouvez utiliser le remplacement de propriété basée descripteur pour gérer la configuration en externe.
Le remplacement de propriété basée descripteur remplace les propriétés basées sur des descripteurs, ce qui vous permet de supprimer les hypothèses concernant l'environnement de l'application et la chaîne de construction. Les configurations spécifiques à l'environnement peuvent être spécifiées dans les descripteurs de déploiement à la place des annotations ou des build system scripts. Vous pouvez fournir la configuration dans les fichiers ou en tant que paramètres en ligne de commande.
Le remplacement de propriétés basées descripteur est activé globalement par standalone.xml ou domain.xml :

Exemple 2.12. Remplacement de propriété basée descripteur

<subsystem xmlns="urn:jboss:domain:ee:1.1">
  <spec-descriptor-property-replacement>
    true
  </spec-descriptor-property-replacement>
  <jboss-descriptor-property-replacement>
    true
  </jboss-descriptor-property-replacement>
</subsystem>
Copy to Clipboard
Le remplacement de descripteur spécifique à Java EE est désactivé par défaut. Si activés, les descripteurs peuvent être remplacés dans le fichiers de configuration suivants : ejb-jar.xml et persistence.xml.
Le remplacement de descripteur spécifique à Java est activé par défaut. Si activés, les descripteurs peuvent être remplacés dans les fichiers de configuration suivants :
  • jboss-ejb3.xml
  • jboss-app.xml
  • jboss-web.xml
  • *-jms.xml
  • *-ds.xml
Par exemple, avec un bean ayant l'annotation suivante :

Exemple 2.13. Exemple d'annotation

@ActivationConfigProperty(propertyName = "connectionParameters", propertyValue = "host=192.168.1.1;port=5445")
Copy to Clipboard
Avec le remplacement de propriété basée descripteur, connectionParameters peut être spécifié en ligne de commande par :
./standalone.sh -DconnectionParameters='host=10.10.64.1;port=5445'
Copy to Clipboard
Pour accomplir cela par les propriétés système, vous pouvez utiliser une expression à la place de la valeur litérale. Les expressions prennent le format ${parameter:default}. Quand une expression est utilisée dans une configuration, la valeur de ce paramètre prend sa place. Si le paramétre n'existe pas, alors la valeur par défaut indiquée sera utilisée à la place.

Exemple 2.14. Utiliser une expression dans un descripteur

<activation-config>
  <activation-config-property>
    <activation-config-property-name>
      connectionParameters
      </activation-config-property-name>
    <activation-config-property-value>
      ${jms.connection.parameters:'host=10.10.64.1;port=5445'}
    </activation-config-property-value>
  </activation-config-property>
</activation-config>
Copy to Clipboard
L'expression ${jms.connection.parameters:'host=10.10.64.1;port=5445'} permet aux paramètres de connexion d'être remplacés par un paramètre fourni en ligne de commande, tout en donnant une valeur par défaut.
Retour au début
Red Hat logoGithubredditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance. Découvrez nos récentes mises à jour.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez le Blog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

Theme

© 2025 Red Hat