1.7. プログラムで設定にアクセスする
コード内にメソッドを定義して、アプリケーションの設定プロパティー値を取得できます。そうすることで、設定プロパティー値を動的に検索したり、CDI Bean または Jakarta REST (旧名 JAX-RS) リソースのいずれかのクラスから設定プロパティー値を取得したりできます。
org.eclipse.microprofile.config.ConfigProvider.getConfig() メソッドを使用して設定にアクセスできます。config オブジェクトの getValue() メソッドは、設定プロパティー値を返します。
前提条件
- Quarkus Maven プロジェクトがある。
手順
メソッドを使用して、アプリケーションコード内のクラスまたはオブジェクトの設定プロパティーの値にアクセスします。取得する値がプロジェクトの設定ソースに設定されているかどうかに応じて、以下のいずれかのメソッドを使用できます。
たとえば、
application.propertiesファイルで、プロジェクトの設定ソースで設定されるプロパティーの値にアクセスするには、getValue()メソッドを使用します。String <variable-name> = ConfigProvider.getConfig().getValue("<property-name>", <data-type-class-name>.class);String <variable-name> = ConfigProvider.getConfig().getValue("<property-name>", <data-type-class-name>.class);Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、データ型が
Stringで、コード内のmessage変数に割り当てられているgreeting.messageプロパティーの値を取得するには、次の構文を使用します。String message = ConfigProvider.getConfig().getValue("greeting.message",String.class);String message = ConfigProvider.getConfig().getValue("greeting.message",String.class);Copy to Clipboard Copied! Toggle word wrap Toggle overflow 任意の値またはデフォルト値を取得し、
application.propertiesファイルまたはアプリケーションの別の設定ソースで定義されていない場合は、getOptionalValue()メソッドを使用します。Optional_<String>_ <variable-name> = ConfigProvider.getConfig().getOptionalValue("<property-name>", <data-type-class-name>.class);Optional_<String>_ <variable-name> = ConfigProvider.getConfig().getOptionalValue("<property-name>", <data-type-class-name>.class);Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、オプションで、データ型が
Stringで、コード内のname変数に割り当てられている、オプションのgreeting.nameプロパティーの値を取得するには、次の構文を使用します。Optional_<String>_ name = ConfigProvider.getConfig().getOptionalValue("greeting.name", String.class);Optional_<String>_ name = ConfigProvider.getConfig().getOptionalValue("greeting.name", String.class);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次の抜粋は、プログラムによる設定へのアクセスを使用して、前述の GreetingResource クラスのバリアントを示します。
src/main/java/org/acme/config/GreetingResource.java