第10章 YAML 設定サポートの追加
Red Hat ビルドの Quarkus は、Eclipse MicroProfile Config の SmallRye Config 実装により YAML 設定ファイルをサポートします。Quarkus Config YAML エクステンションを追加し、プロパティーの代わりに YAML を使用して設定することができます。Quarkus は、YAML ファイルの名前に application.yml と application.yaml を使用することをサポートしています。
YAML 設定ファイルは、application.properties ファイルよりも優先されます。推奨される方法は、application.properties ファイルを削除し、エラーを回避するために 1 種類のみの設定ファイルを使用することです。
手順
以下の方法のいずれかを使用して、プロジェクトに YAML エクステンションを追加します。
pom.xmlファイルを開き、quarkus-config-yamlエクステンションを依存関係として追加します。<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-config-yaml</artifactId> </dependency><dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-config-yaml</artifactId> </dependency>Copy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドラインから
quarkus-config-yamlエクステンションを追加するには、プロジェクトディレクトリーから以下のコマンドを入力します。./mvnw quarkus:add-extension -Dextensions="quarkus-config-yaml"
./mvnw quarkus:add-extension -Dextensions="quarkus-config-yaml"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1. YAML でのネストされたオブジェクト設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
既存のクラス内でネストされたクラスを定義できます。以下の YAML 設定ファイルの例は、YAML 形式を使用して Quarkus アプリケーションでネストされたプロパティーを設定する方法を示しています。
前提条件
- YAML 設定ファイルを読み取ることができる既存の Quarkus プロジェクトがあること。
手順
開発モードで Quarkus を起動するには、Quarkus アプリケーションの
pom.xmlファイルが含まれるディレクトリーで以下のコマンドを入力します。./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow - YAML 設定ファイルを開きます。
- 以下に示す構文のようなネストされたクラス設定を追加します。
10.2. YAML を使用したカスタム設定プロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ビルドの Quarkus では、プロファイル依存の設定を作成し、必要に応じてそれらの設定の切り替えを行うことができます。以下の手順は、YAML を使用してプロファイル依存設定を提供する方法を示しています。
前提条件
- YAML 設定ファイルを読み取るように Quarkus プロジェクトが設定されていること。
手順
- YAML 設定ファイルを開きます。
プロファイル依存設定を設定するには、
”%profile”構文を使用してキーと値のペアを定義する前にプロファイル名を追加します。以下の例では、Quarkus が開発モードで実行される際に、
jdbc:postgresql://localhost:5432/some-databaseURL で PostgreSQL データベースが利用可能になるように設定されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションを停止した場合には、以下のコマンドを入力して再起動します。
./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.3. 設定キーの競合の管理 リンクのコピーリンクがクリップボードにコピーされました!
YAML などの構造化形式は、Configuration 名前空間の候補のサブセットのみをサポートします。以下の手順は、2 つの設定プロパティー (quarkus.http.cors と quarkus.http.cors.methods) における競合の解決方法を示しています。ここで、1 つのプロパティーはもう 1 つのプロパティーの接頭辞になります。
前提条件
- YAML 設定ファイルを読み取るように Quarkus プロジェクトが設定されていること。
手順
- YAML 設定ファイルを開きます。
YAML プロパティーを別のプロパティーの接頭辞として定義するには、以下の例に示すようにプロパティーの範囲にティルデ (
~) を追加します。quarkus: http: cors: ~: true methods: GET,PUT,POSTquarkus: http: cors: ~: true methods: GET,PUT,POSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 開発モードで Quarkus アプリケーションをコンパイルするには、プロジェクトディレクトリーから以下のコマンドを入力します。
./mvnw quarkus:dev
./mvnw quarkus:devCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記YAML キーは設定プロパティー名のアセンブリーに含まれないため、任意のレベルの競合する設定キーに使用できます。