2.4.5. ネストされた式
式はネスト化できるため、固定値の代わりにさらに高度な式を使用できます。ネストされた式の書式は、通常の式の場合と同様ですが、ある式が別の式に組み込まれます。 例を以下に示します。
ネストされた式は、再帰的に評価されるため、最初に 内部の式が評価され、次に 外部の式が評価されます。ネストされた式は式が許可された場所であればどこでも許可されます(ただし、管理 CLI コマンドを除く)。
例2.12 ネストされた式
${system_value_1${system_value_2}}
通常式と同様に、ネストされた式の解決でサポートされるソースはシステムプロパティー、環境変数、および Vault になります。デプロイメントのみの場合、デプロイメントアーカイブの
META-INF/jboss.properties ファイルにリストされたプロパティーをソースとすることができます。サブデプロイメントをサポートする EAR またはその他のデプロイメントタイプでは、META-INF/jboss.properties が外部デプロイメント(EAR など)にある場合、解決はすべてのサブデプロイメントにスコープが設定され、META-INF/jboss.properties が EAR 内のサブデプロイメントアーカイブ(例: EAR 内の WAR)にある場合はサブデプロイメントに対してスコープ指定されます。
例2.13 設定ファイルでのネストされた式の使用
ネストされた式の実際のライフサイクルアプリケーションはデータソース定義にあります。データソース定義で使用されるパスワードがマスクされている場合は、データソース定義で生成される行は以下のようになります。
ネストされた式を使用すると、
<password>${VAULT::ds_ExampleDS::password::1}</password>
ds_ExampleDS の値をシステムプロパティーに置き換えることができます。システムプロパティー datasource_name に ds_ExampleDS の値が割り当てられている場合、データソース定義の行は以下のようになります。
<password>${VAULT::${datasource_name}::password::1}</password>
JBoss EAP は最初に式
${datasource_name} を評価し、次にこれを大きな式に入力し、結果となる式を評価します。この設定の利点は、データソースの名前が固定された設定から抽象化されることです。
式が再帰的になれば、式が式に解決され、その後解決されます。ネストされた式と再帰式は間接的な形です。管理 CLI コマンドでは再帰式が許可されないことに注意してください。
例2.14 再帰式
前の例を続行すると、式 ${
VAULT::ds_ExampleDS::password::1} に解決される ${ foo} 式が使用され、Vault: シークレット に含まれる値に解決されます。