1.10. カスタム設定ソースの設定
Quarkus アプリケーションは、デフォルトでプロジェクトの src/main/resources
サブディレクトリー内の application.properties
ファイルからプロパティーを読み取ります。Quarkus では、外部化された設定の MicroProfile Config 仕様に従い、他のソースからアプリケーション設定プロパティーをロードすることもできます。org.eclipse.microprofile.config.spi.ConfigSource
および org.eclipse.microprofile.config.spi.ConfigSourceProvider
インターフェイスを実装するクラスを定義することで、アプリケーションは他のソースから設定プロパティーをロードできるようになります。以下の手順では、Quarkus プロジェクトにカスタム設定ソースを実装する方法を説明します。
前提条件
Quarkus config-quickstart
プロジェクトがある。
手順
org.eclipse.microprofile.config.spi.ConfigSourceProvider
インターフェイスを実装するプロジェクトでクラスファイルを作成します。ConfigSource
オブジェクトのリストを返すには、getConfigSources()
メソッドをオーバーライドする必要があります。org.acme.config.InMemoryConfigSourceProvider
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow org.eclipse.microprofile.config.spi.ConfigSource
インターフェイスを実装するInMemoryConfigSource
クラスを作成します。org.acme.config.InMemoryConfigSource
の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
getOrdinal()
メソッドは、ConfigSource
クラスの優先度を返します。そのため、複数の設定ソースが同じプロパティーを定義している場合でも、Quarkus は最も優先度の高いConfigSource
クラスで定義されている適切な値を選択できます。
プロジェクトの
src/main/resources/META-INF/services/
サブディレクトリーにorg.eclipse.microprofile.config.spi.ConfigSourceProvider
という名前のファイルを作成し、作成したファイルにConfigSourceProvider
を実装するクラスの完全修飾名を入力します。org.eclipse.microprofile.config.spi.ConfigSourceProvider
ファイルの例:org.acme.config.InMemoryConfigSourceProvider
org.acme.config.InMemoryConfigSourceProvider
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションをコンパイルして開始する際に、作成した
ConfigSourceProvider
が確実に登録およびインストールされているようにするには、前の手順を完了する必要があります。プロジェクト内の
GreetingResource.java
ファイルを編集して、次の更新を追加します。@ConfigProperty(name="my.prop") int value;
@ConfigProperty(name="my.prop") int value;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow GreetingResource.java
ファイルで、hello
メソッドを展開して新しいプロパティーを使用します。@GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return message + " " + name.orElse("world") + " " + value; }
@GET @Produces(MediaType.TEXT_PLAIN) public String hello() { return message + " " + name.orElse("world") + " " + value; }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを入力して、開発モードでアプリケーションをコンパイルし、起動します。
./mvnw quarkus:dev
./mvnw quarkus:dev
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ターミナルウィンドウを開いて次のコマンドを入力し、
/greeting
エンドポイントが予期したメッセージを返すことを確認します。要求の例
curl http://localhost:8080/greeting
curl http://localhost:8080/greeting
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アプリケーションがカスタム設定を正常に読み取ると、コマンドは次のレスポンスを返します。
hello world 1234
hello world 1234
Copy to Clipboard Copied! Toggle word wrap Toggle overflow