1.8. プロパティー式
プロパティー式は、設定内のプロパティーの値を置き換えるために使用できるプロパティー参照とプレーンテキスト文字列の組み合わせになります。
変数と同様に、Quarkus でプロパティー式を使用して、設定プロパティーの値をハードコーディングする代わりに置き換えることができます。プロパティー式は、java.util.Properties がアプリケーションの設定ソースからプロパティーの値を読み取ると解決されます。
これは、コンパイル時に設定プロパティーが設定から読み取られる場合に、プロパティー式もコンパイル時に解決されることを意味します。設定プロパティーが実行時にオーバーライドされる場合、その値は実行時に解決されます。
複数の設定ソースを使用してプロパティー式を解決できます。これは、ある設定ソースで定義されているプロパティーの値を使用して、別の設定ソースで使用するプロパティー式を拡張できることを意味します。
式のプロパティーの値を解決できず、式のデフォルト値を設定しない場合は、アプリケーションで NoSuchElementException が発生します。
1.8.1. プロパティー式の使用例 リンクのコピーリンクがクリップボードにコピーされました!
Quarkus アプリケーション設定時に柔軟性を持たせるために、次の例に示すプロパティー式を使用できます。
設定プロパティーの値の置き換え:
プロパティー式を使用して、設定内のプロパティー値のハードコーディングを回避できます。以下の例のように、
${<property_name>}構文を使用して、設定プロパティーを参照する式を作成します。application.propertiesファイルの例remote.host=quarkus.io callable.url=https://${remote.host}/remote.host=quarkus.io callable.url=https://${remote.host}/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
%dev.quarkus.datasource.jdbc.url=jdbc:mysql://localhost:3306/mydatabase?useSSL=false quarkus.datasource.jdbc.url=jdbc:mysql://remotehost:3306/mydatabase?useSSL=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow データソースドライバーは、アプリケーションの起動に使用する設定プロファイルに応じて、プロファイルに設定したデータベース URL を使用します。
カスタム
application.serverプロパティーに対して、設定プロファイルごとに異なる値を設定することで、簡単に同じ結果を得ることができます。その後、次の例に示すように、アプリケーションのデータベース接続 URL でプロパティーを参照できます。application.propertiesファイルの例%dev.application.server=localhost application.server=remotehost quarkus.datasource.jdbc.url=jdbc:mysql://${application.server}:3306/mydatabase?useSSL=false%dev.application.server=localhost application.server=remotehost quarkus.datasource.jdbc.url=jdbc:mysql://${application.server}:3306/mydatabase?useSSL=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow application.serverプロパティーは、アプリケーションの実行時に選択するプロファイルに応じて適切な値に解決されます。プロパティー式のデフォルト値の設定:
プロパティー式のデフォルト値を定義できます。Quarkus は、式を展開するために必要なプロパティーの値が設定ソースのいずれからも解決されない場合に、デフォルト値を使用します。次の構文を使用して、式のデフォルト値を設定できます。
${<property_name>:<default_value>}${<property_name>:<default_value>}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、データソース URL のプロパティー式は、
application.serverプロパティーのデフォルト値としてmysql.db.serverを使用します。application.propertiesファイルの例quarkus.datasource.jdbc.url=jdbc:mysql://${application.server:mysql.db.server}:3306/mydatabase?useSSL=falsequarkus.datasource.jdbc.url=jdbc:mysql://${application.server:mysql.db.server}:3306/mydatabase?useSSL=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティー式のネスト化:
プロパティー式を別のプロパティー式内にネスト化することで、プロパティー式を作成できます。ネスト化されたプロパティー式を展開する際には、内部の式が最初に展開されます。プロパティー式をネストするには、次の構文を使用します。
${<outer_property_name>${<inner_property_name>}}${<outer_property_name>${<inner_property_name>}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 複数のプロパティー式を組み合わせます。
次の構文を使用して、2 つ以上のプロパティー式を結合できます。
${<first_property_name>}${<second_property_name>}${<first_property_name>}${<second_property_name>}Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティー式と環境変数の組み合わせ:
プロパティー式を使用して、環境変数の値を置き換えることができます。次に示す例の式は、
HOST環境変数に設定される値をapplication.hostプロパティーの値として置き換えます。application.propertiesファイルの例remote.host=quarkus.io application.host=${HOST:${remote.host}}remote.host=quarkus.io application.host=${HOST:${remote.host}}Copy to Clipboard Copied! Toggle word wrap Toggle overflow
HOST 環境変数が設定されていない場合、application.host プロパティーは、remote.host プロパティーの値をデフォルトとして使用します。