Variablen in Konfigurationsdateien verwenden

Sie können Variablen in der Konfiguration verwenden, wenn Sie vermeiden möchten, Werte fest zu codieren, die eventuell nicht geeignet sind, wenn die Konfiguration in anderen Umgebungen wiederverwendet wird.

Informationen zu dieser Task

Variablen können definiert werden, indem eine Eigenschaft an einer der folgenden Positionen festgelegt wird:
  • in der Serverkonfigurationsdatei oder einer eingeschlossenen Datei
  • In der Datei bootstrap.properties
Die folgenden vordefinierten Variablen können referenziert werden:
Wird dieselbe Variable an mehreren Stellen angegeben, gilt die folgende Rangfolge:
  • Variablen in bootstrap.properties überschreiben die Prozessumgebungsvariablen.
  • Variablen in server.xml oder enthaltenen XML-Dateien überschreiben die Variablen in bootstrap.properties und Prozessumgebungsvariablen.
Bewährtes Verfahren: Variablen, die für einen bestimmten Server spezifisch sind, wie z. B. Portnummern, werden in der Datei bootstrap.properties angegeben, sodass die server.xml von mehreren Servern gemeinsam genutzt werden kann, während diese Werte auf jedem Server unterschiedlich bleiben. Variablen, die von einer Gruppe von Servern gemeinsam genutzt werden, z. B. die Datenbankkonfiguration für einen bestimmten Host, sollten besser in einer XML-Datei angegeben werden, die in die übergeordnete Konfigurationsdatei eingeschlossen wird.
Best Practice: Variablennamen müssen mit einem alphabetischen Zeichen beginnen und dürfen nur die folgenden Zeichen enthalten: alphabetische Zeichen, numerische Zeichen sowie die Zeichen "_" und "." enthalten.

Vorgehensweise

  • Geben Sie eine Variable in einer Konfigurationsdatei an.

    Die Variablendefinitionssyntax ist Variablenname=Wert. Wenn der Wert einen Pfad enthält, wird er während der Konfigurationsverarbeitung normalisiert, indem doppelte Schrägstriche und Backslashes durch einen einzelnen Schrägstrich ersetzt werden, sofern der Wert nicht mit doppelten Schrägstrichen oder Backslashes beginnt (diese bleiben unverändert).

    Bewährtes Verfahren: Wenn Sie den Wert einer Variablen so festlegen müssen, dass er wiederholte Schrägstriche enthält, wie sie manchmal für JDBC -Treiberverbindungs-URLs verwendet werden, teilen Sie den Wert an den doppelten Schrägstrichen in zwei Teile auf. Durch Platzieren der Schrägstriche als Anfangszeichen wird die Normalisierung umgangen. Wenn Sie beispielsweise den Wert "jdbc:db2://host_name.com" speichern möchten, verwenden Sie hierzu zwei Variablen:
    URL_PART_1="jdbc:db2:"
    URL_PART_2="//host_name.com"
    In den Konfigurationsdateien definierte Variablen beziehen sich auf die Konfigurationselemente, von denen sie verwendet werden. Das folgende Codefragment erstellt beispielsweise eine Variable mit dem Namen updateTrigger_var, die in applicationMonitor-Konfigurationselementen verwendet werden soll:
    <applicationMonitor updateTrigger_var="mbean" />
    Wenn Sie eine Variable erstellen möchten, die in einer bestimmten Konfigurationsinstanz (z. B. einer Anwendung oder einem Ressourceneintrag) verwendet wird, müssen Sie auch die Instanz-ID angeben. Zum Beispiel:
    <httpEndpoint id="defaultHttpEndpoint" HTTP_default_var="8889" />
  • Geben Sie eine Variable in der Datei bootstrap.properties an.
    In der Datei bootstrap.properties definierte Variablen beziehen sich nicht auf bestimmte Konfigurationselemente. Die Variablen werden als Schlüssel/Wert-Paar eingegeben. Zum Beispiel:
    HTTP_default_var=8006
  • Verwenden Sie eine definierte Variable in der Konfiguration.
    Die Syntax für die Variablensubstitution lautet ${variable_name}. Mehrere Variablenwerte können durch Angabe von ${variable_name1}${variable_name2}verknüpft werden. Wenn Sie beispielsweise die Variable HTTP_default_var verwenden möchten, nehmen Sie das folgende Codefragment in die Konfigurationsdatei auf:
    <httpEndpoint id="defaultHttpEndpoint"
    httpPort="${HTTP_default_var}">
    </httpEndpoint>
  • Verwenden Sie das Element variable in der Konfiguration.
    Sie können das Element variable verwenden, um eine Variable global in der Serverkonfiguration zu definieren. Wenn dieselbe Variable in einer eingeschlossenen Datei definiert ist, wird sie von der in der Datei server.xml angegebenen Variablen außer Kraft gesetzt. Wenn Sie beispielsweise das Element variable verwenden möchten, nehmen Sie das folgende Codefragment in die Konfigurationsdatei auf:
    <variable name="HTTP_default_var" value="8889" />
  • Verwenden Sie die Prozessumgebungsvariablen in der Konfiguration.

    Verarbeitungsumgebungsvariablen sind verfügbar, wenn Sie das Konfigurationsvariablenpräfix env. verwenden, z. B.:

    <fileset dir="${env.LIBRARY_DIR}" includes="*.jar"/>

    Weitere Informationen zum Angeben von Umgebungsvariablen finden Sie unter Liberty-Umgebung anpassen.

  • Verwenden Sie die Listenvariablen in der Konfiguration.
    In der Regel können Variablen keine durch Kommas getrennte Liste von Werten für die Verwendung in einem mehrwertigen Attribut ausdrücken. Variablen, die Kommas enthalten, werden als einzelne Zeichenfolge und nicht als Mehrfachwerte interpretiert. Es ist möglich, eine Variable als durch Kommas getrennte Liste von Werten zu interpretieren, indem der Variablenname mit ${list(...)} angegeben wird. Zum Beispiel:
    <variable name="ports" value="80,9080"/>
    

    ${ports} wird als Zeichenfolge "80, 9080"interpretiert.

    ${list(ports)} wird als Sammlung mit den Zeichenfolgen "80" und "9080" interpretiert.

  • Verwenden Sie Variablenausdrücke in der Konfiguration.
    Für Konfigurationsvariablen können Sie eine eingeschränkte Syntax für Variablenausdrücke im Format ${<operand><operator><operand>}verwenden. Für die Variablen gilt Folgendes:
    Operand
    Operanden können entweder lange ganzzahlige Literale oder Namen von Variablen sein, die einen langen ganzzahligen Wert enthalten. Variablennamen müssen mit einem alphabetischen Zeichen beginnen und dürfen nur die folgenden Zeichen enthalten: alphabetische Zeichen, numerische Zeichen sowie die Zeichen "_" und "." enthalten.
    operator
    Folgende Operatoren sind verfügbar:
    • + für Addition
    • - für Subtraktion
    • * für Multiplikation
    • / für Division
    Wenn der Ausdruck nicht geparst werden kann, ein nicht ganzzahliger Wert verwendet wird oder ein arithmetischer Fehler auftritt, ist das Verhalten nicht definiert.
    Wenn beispielsweise die Variable HTTP_port_base definiert ist, kann ein Variablenausdruck verwendet werden, um mehrere httpEndpoints zu definieren:
    <httpEndpoint id="defaultHttpEndpoint" httpPort="${HTTP_port_base+0}"/>
    <httpEndpoint id="httpEndpoint2" httpPort="${HTTP_port_base+1}"/>
  • Setzen Sie vererbbare Attribute in der Konfiguration außer Kraft.

    Sie können die Standardwerte von vererbbaren Attributen in der Konfiguration außer Kraft setzen. Die übernehmbaren Attribute werden auf der Seite Liberty-Features aufgelistet. Sie können die Elemente mit den vererbbaren Attributen ermitteln, indem Sie nach dem Typ Inherits suchen. Das Attribut onError ist beispielsweise ein vererbbares Attribut. Sie können für das Attribut onError global einen Variablennamen definieren, indem Sie das Attribut entweder in der Datei bootstrap.properties oder in der Datei server.xml mit dem Element variable festlegen. Wird derselbe Variablenname in beiden Dateien angegeben, wird der Wert in der Datei server.xml verwendet. Wenn das Attribut in keiner dieser beiden Dateien explizit festgelegt wird, wird der Standardwert verwendet. Wird ein ungültiger Wert für das vererbbare Attribut angegeben, verwendet dieses den in der Datei bootstrap.properties oder server.xml definierten globalen Wert oder den Standardwert, falls dieser nicht auf globaler Ebene definiert ist.

    Ein weiteres Beispiel ist logging properties in Liberty.