Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Eclipse MicroProfile Configについて

More than 1 year has passed since last update.

はじめに

前回の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系のアプリケーションでも簡単に使えます。
クラウドやコンテナ利用で同じモジュール、バイナリ、コンテナイメージを使う際にはこの機能は使いたいですよね。

参考リンク

omix222
業務アプリケーション開発を経験後、フレームワーク開発を長らくやり、今はR&DとEngineering Managerをやっています。 システム開発はキツいもの、というところから脱却するとともに、 アジャイルを中心としたワクワク感を持ちながらの開発と、 技術力&高いアンテナを軸にしたイノベーションを狙っています。
mdc
”自己研鑽のサイクル”を応援するコミュニティです。外の世界に発信&フィードバックを受け、コミュニティの仲間と共に頑張りましょう。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away