はじめに

前回のEclipse MicroProfileとはで概要を紹介したEclipse MicroProfile Configについて説明したいと思います。

始め方

前々回のEclipse MicroProfileの始め方で紹介した、
MicroProfile Starterを使っていきます。

image.png

こちらの設定でプロジェクトを作成、ダウンロードします。

ファイル構成は以下のようになっています。

image.png

ビルド、アプリ起動しlocalhost:8080へアクセスすると以下のようはTop画面が用意されています。

image.png

前々回と異なり、Configについてのサンプルリンクが用意されています。
リンク先はどちらも以下のような設定内容を画面表示させるようなシンプルなものとなってます。

image.png

設定の仕方

設定ファイルの利用

プロジェクト内の設定ファイルを見ることが基本系となります。
Key-Value形式で設定することができます。
microprofile-config.properties
injected.value=Injected value
value=lookup value

起動時引数の利用

以下のような形で起動時引数で指定します。

java -Dinjected.value=CustomValue -jar target/configdemo.jar 

起動すると以下のように設定ファイルの内容が、起動時引数の設定に上書きされます。

image.png

環境設定の利用

環境変数でも指定可能です。

export value=EnvCustomValue
java -jar target/configdemo.jar 

image.png

設定内容の取得方法

インジェクションでの取得

ConfigTestController.java
    // CDIの@Injectを利用
    @Inject
    //キー名を取得することで、フィールドインジェクション可能
    @ConfigProperty(name = "injected.value")
    private String injectedValue;

    @Path("/injected")
    @GET
    public String getInjectedConfigValue() {
        return "Config value as Injected by CDI " + injectedValue;
    }

LookUpのAPIでの取得

ConfigTestController.java
    @Path("/lookup")
    @GET
    public String getLookupConfigValue() {
        // 以下のAPIで取得
        Config config = ConfigProvider.getConfig();
        String value = config.getValue("value", String.class);
        return "Config value from ConfigProvider " + value;
    }

まとめ

かなりシンプルな設定方法と設定の取得方法であったことが分かったかと思います。
Springでも同じようなことができますが、JavaEE系のアプリケーションでも簡単に使えます。
クラウドやコンテナ利用で同じモジュール、バイナリ、コンテナイメージを使う際にはこの機能は使いたいですよね。

参考リンク