1.9. プロパティー式
プロパティー参照とテキスト文字列を組み合わせてプロパティー式を作成し、プロパティー式を Red Hat build of Quarkus 設定の値として使用できます。
プロパティー式は、変数と同様に、設定値を動的に置き換えます。そのため、値のハードコードを回避するのに役立ちます。
ある設定ソースで定義されたプロパティーを別のソースから参照できます。
Red Hat build of Quarkus は、設定プロパティーを読み取るとき、つまり以下のタイミングでプロパティー式を解決します。
- ビルド時 (ビルド時にプロパティーが読み取られる場合)
- 実行時 (実行時にプロパティーが読み取られる場合)
プロパティー式を解決できず、式にデフォルト値が含まれていない場合、Red Hat build of Quarkus は NoSuchElementException を出力します。
1.9.1. プロパティー式の使用例 リンクのコピーリンクがクリップボードにコピーされました!
Quarkus アプリケーション設定時に柔軟性を持たせるために、次の例に示すプロパティー式を使用できます。
設定プロパティーの値の置き換え:
プロパティー式を使用して、設定内のプロパティー値のハードコーディングを回避できます。以下の例のように、
${<property_name>}構文を使用して、設定プロパティーを参照する式を作成します。application.propertiesファイルの例remote.host=quarkus.io callable.url=https://${remote.host}/callable.urlプロパティーの値はhttps://quarkus.io/に解決されます。特定の設定プロファイルに固有のプロパティー値の設定:
以下の例では、
%dev設定プロファイルとデフォルトの設定プロファイルは、異なるホストアドレスでデータソース接続 URL を使用するように設定されます。application.propertiesファイルの例%dev.quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false quarkus.datasource.jdbc.url=jdbc:mysql://remotehost:3306/mydatabase?useSSL=falseデータソースドライバーは、アプリケーションの起動に使用する設定プロファイルに応じて、プロファイルに設定したデータベース URL を使用します。
カスタム
application.serverプロパティーに対して、設定プロファイルごとに異なる値を設定することで、簡単に同じ結果を得ることができます。その後、次の例に示すように、アプリケーションのデータベース接続 URL でプロパティーを参照できます。application.propertiesファイルの例%dev.application.server=localhost application.server=remotehost quarkus.datasource.jdbc.url=jdbc:mysql://${application.server}:3306/mydatabase?useSSL=falseapplication.serverプロパティーは、アプリケーションの実行時に選択するプロファイルに応じて適切な値に解決されます。プロパティー式のデフォルト値の設定:
プロパティー式のデフォルト値を定義できます。Quarkus は、式を展開するために必要なプロパティーの値が設定ソースのいずれからも解決されない場合に、デフォルト値を使用します。次の構文を使用して、式のデフォルト値を設定できます。
${<property_name>:<default_value>}以下の例では、データソース URL のプロパティー式は、
application.serverプロパティーのデフォルト値としてmysql.db.serverを使用します。application.propertiesファイルの例quarkus.datasource.jdbc.url=jdbc:mysql://${application.server:mysql.db.server}:3306/mydatabase?useSSL=falseプロパティー式のネスト化:
プロパティー式を別のプロパティー式内にネスト化することで、プロパティー式を作成できます。ネスト化されたプロパティー式を展開する際には、内部の式が最初に展開されます。プロパティー式をネストするには、次の構文を使用します。
${<outer_property_name>${<inner_property_name>}}複数のプロパティー式を組み合わせます。
次の構文を使用して、2 つ以上のプロパティー式を結合できます。
${<first_property_name>}${<second_property_name>}プロパティー式と環境変数の組み合わせ:
プロパティー式を使用して、環境変数の値を置き換えることができます。次に示す例の式は、
HOST環境変数に設定される値をapplication.hostプロパティーの値として置き換えます。application.propertiesファイルの例remote.host=quarkus.io application.host=${HOST:${remote.host}}
HOST 環境変数が設定されていない場合、application.host プロパティーは、remote.host プロパティーの値をデフォルトとして使用します。