1.3. YAML 設定サポートの追加
Red Hat build of Quarkus は、Eclipse MicroProfile Config の SmallRye Config
実装により YAML 設定ファイルをサポートします。Quarkus Config YAML
エクステンションを追加し、設定のプロパティーファイルで YAML 設定ファイルを使用できます。Quarkus は、application.yml
および application.yaml
を YAML ファイルの名前として使用することをサポートします。
YAML 設定ファイルは、application.properties
ファイルよりも優先されます。エラーを回避するには、application.properties
ファイルを削除し、1 種類の設定ファイルのみを使用できます。
手順
以下の方法のいずれかを使用して、プロジェクトに YAML エクステンションを追加します。
pom.xml
ファイルを開き、quarkus-config-yaml
エクステンションを依存関係として追加します。pom.xml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-config-yaml</artifactId> </dependency>
<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-config-yaml</artifactId> </dependency>
コマンドラインから
quarkus-config-yaml
エクステンションを追加するには、プロジェクトディレクトリーから以下のコマンドを入力します。quarkus-config-yaml
エクステンションの追加Copy to Clipboard Copied! Toggle word wrap Toggle overflow ./mvnw quarkus:add-extension -Dextensions="quarkus-config-yaml"
./mvnw quarkus:add-extension -Dextensions="quarkus-config-yaml"
1.3.1. YAML を使用したネストされたオブジェクト設定の使用
application.yaml
設定ファイルを使用して、Red Hat build of Quarkus アプリケーションの既存の設定プロパティー内でネストされた設定プロパティーを定義できます。
前提条件
- Quarkus Maven プロジェクトがある。
- PostgreSQL データソースがある。
プロジェクトの
pom.xml
ファイルの依存関係として、以下のエクステンションがある。-
quarkus-resteasy-client
-
quarkus-jdbc-postgresql
-
quarkus-config-yaml
-
手順
-
src/main/resources/application.yaml
設定ファイルを開きます。 以下の例のように、ネストされたクラス設定プロパティーを
application.yaml
ファイルに追加します。application.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow Properties that configure the JDBC data source driver of your PostgreSQL data source Property that configures the URL of the endpoint to which the REST client sends requests Property that configures the log message level for your application For configuration property names that use quotes, do not split the string inside the quotes
# Properties that configure the JDBC data source driver of your PostgreSQL data source quarkus: datasource: db-kind: postgresql jdbc: url: jdbc:postgresql://localhost:5432/quarkus_test username: quarkus_test password: quarkus_test # Property that configures the URL of the endpoint to which the REST client sends requests quarkus: rest-client: org.acme.rest.client.ExtensionsService: url: https://stage.code.quarkus.io/api # Property that configures the log message level for your application # For configuration property names that use quotes, do not split the string inside the quotes quarkus: log: category: "io.quarkus.category": level: INFO
警告実稼働環境の場合は、前述の例のように、設定ファイルにユーザー名とパスワードを設定しないでください。これは、説明のみを目的としています。代わりに、環境変数で設定します。詳細は、「プロパティーファイルを使用した Red Hat build of Quarkus アプリケーションの設定」ガイドの 設定プロパティーの設定 セクションを参照してください。
application.properties
ファイルと同様に、コメントを使用して設定プロパティーを YAML 形式で記述できます。注記YAML 設定ファイル内のプロパティーをインデントするには、常にスペースを使用してください。YAML は、インデントへのタブの使用をサポートしていません。
1.3.2. YAML を使用したカスタム設定プロファイルの設定
Quarkus を使用すると、アプリケーションのさまざまな設定プロファイルに固有の設定プロパティーと値を設定できます。特定のプロファイルを使用してアプリケーションを起動し、特定の設定にアクセスできます。この手順では、YAML 形式で特定のプロファイルの設定を提供する方法を示します。
前提条件
- JDBC データソースドライバーで PostgreSQL データソースを使用するように設定された Quarkus Maven プロジェクトがある。
-
プロジェクトの
pom.xml
ファイルに、依存関係としてquarkus-jdbc-postgresql
およびquarkus-config-yaml
エクステンションが追加されている。
手順
-
プロジェクトの設定ファイル
src/main/resources/application.yaml
を開きます。 プロファイル依存設定を設定するには、
"%<profile_name>"
構文を使用してキーと値のペアを定義する前にプロファイル名を追加します。プロファイル名は必ず引用符で囲んでください。ヒントYAML では、特殊文字で始まるすべての文字列を引用符で囲む必要があります。
次の例では、Quarkus アプリケーションを開発モードで起動すると、PostgreSQL データベースが
jdbc:postgresql://localhost:5432/quarkus_test
URL で使用できるように設定されています。src/main/resources/application.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow "%dev": quarkus: datasource: db-kind: postgresql jdbc: url: jdbc:postgresql://localhost:5432/quarkus_test username: quarkus_test password: quarkus_test
"%dev": quarkus: datasource: db-kind: postgresql jdbc: url: jdbc:postgresql://localhost:5432/quarkus_test username: quarkus_test password: quarkus_test
警告実稼働環境の場合は、前述の例のように、設定ファイルにユーザー名とパスワードを設定しないでください。これは、説明のみを目的としています。代わりに、環境変数で設定します。詳細は、「プロパティーファイルを使用した Red Hat build of Quarkus アプリケーションの設定」ガイドの 設定プロパティーの設定 セクションを参照してください。