第9章 カスタム設定コンバーターの設定値としての使用
org.eclipse.microprofile.config.spi.Converter<T> を実装し、その完全修飾クラス名を META-INF/services/org.eclipse.microprofile.config.spi.Converter ファイルに追加することで、設定値としてカスタムタイプを保存することができます。
前提条件
-
Quarkus
config-quickstartプロジェクトを作成していること。
手順
以下の例に示すように、
META-INF/services/org.eclipse.microprofile.config.spi.Converterサービスファイルにコンバーターの完全修飾クラス名を含めます。org.acme.config.MicroProfileCustomValueConverter org.acme.config.SomeOtherConverter org.acme.config.YetAnotherConverter
org.acme.config.MicroProfileCustomValueConverter org.acme.config.SomeOtherConverter org.acme.config.YetAnotherConverterCopy to Clipboard Copied! Toggle word wrap Toggle overflow converter クラスを実装し、convert メソッドを上書きします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記カスタムコンバータークラスは
publicで、引数なしのコンストラクターpublicがなければなりません。カスタムコンバータークラスはabstractであってはなりません。カスタムタイプを設定値として使用します。
@ConfigProperty(name = "configuration.value.name") MicroProfileCustomValue value;
@ConfigProperty(name = "configuration.value.name") MicroProfileCustomValue value;Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.1. カスタムコンバーターの優先度の設定 リンクのコピーリンクがクリップボードにコピーされました!
すべての Quarkus コアコンバーターのデフォルト優先度は 200 で、他のすべてのコンバーターは 100 です。ただし、javax.annotation.Priority アノテーションを使用してカスタムコンバーターにより高い優先度を設定できます。
以下の手順は、優先度が 150 に割り当てられたカスタムコンバーター MicroProfileCustomValue の実装を説明しています。これは、優先度が 100 である MicroProfileCustomValueConverter よりも優先されます。
前提条件
-
Quarkus
config-quickstartプロジェクトを作成していること。
手順
以下の import ステートメントをサービスファイルに追加します。
package org.acme.config; import javax.annotation.Priority; import org.eclipse.microprofile.config.spi.Converter;
package org.acme.config; import javax.annotation.Priority; import org.eclipse.microprofile.config.spi.Converter;Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスに
@Priorityアノテーションを付け、優先度の値を渡して、カスタムコンバーターの優先度を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記新しいコンバーターを追加する場合は、これを
META-INF/services/org.eclipse.microprofile.config.spi.Converterサービスファイルに記載する必要があります。