カテゴリ: Micronaut 更新日: 2026/03/08

Micronautの設定値をBeanに注入する方法!DIと連携した設定管理を初心者向けに解説

Micronautの設定値をBeanに注入する方法!DIとの連携
Micronautの設定値をBeanに注入する方法!DIとの連携

先生と生徒の会話形式で理解しよう

生徒

「Micronautで設定ファイルに書いた値って、Javaのクラスからどうやって使うんですか?」

先生

「Micronautでは、設定値をそのままBeanに注入できます。DIと組み合わせることで、とても自然に扱えます。」

生徒

「フィールドに直接書いてもいいんですか?それとも特別なクラスが必要ですか?」

先生

「いくつか方法があります。基本から順番に見ていけば、迷わず使えるようになりますよ。」

1. Micronautにおける設定注入とDIの関係

1. Micronautにおける設定注入とDIの関係
1. Micronautにおける設定注入とDIの関係

Micronautは、DIを中心に設計されたフレームワークです。そのため、設定値の扱いもDIと深く結び付いています。設定ファイルに書かれた値は、アプリケーション起動時に読み込まれ、Beanとして管理される仕組みになっています。

この仕組みによって、設定値を直接取得するコードを書く必要がなくなり、クラスの責務が明確になります。初心者にとっても、設定とロジックを分けて考えられる点が大きなメリットです。

2. application設定ファイルの基本構造

2. application設定ファイルの基本構造
2. application設定ファイルの基本構造

設定値をBeanに注入する前に、まず設定ファイルの基本を理解しておきましょう。Micronautでは、キーと値の組み合わせで設定を定義します。

このキーは、そのままJava側で参照されるため、命名ルールを意識することが重要です。階層構造を使うことで、設定の意味も分かりやすくなります。


app:
  title: サンプルアプリ
  version: 1.0

このような設定は、後ほどBeanに注入して利用できます。

3. フィールドに設定値を直接注入する方法

3. フィールドに設定値を直接注入する方法
3. フィールドに設定値を直接注入する方法

最もシンプルな方法は、Beanのフィールドに設定値を直接注入するやり方です。DIの仕組みを使うことで、特別な処理を書かずに設定値を受け取れます。

この方法は、小規模な設定や単純な値を扱う場合に向いています。


import jakarta.inject.Singleton;
import io.micronaut.context.annotation.Value;

@Singleton
public class AppInfoService {

    @Value("${app.title}")
    String title;

    @Value("${app.version}")
    String version;
}

このクラスはBeanとして管理され、設定ファイルの値が自動的に注入されます。

4. 設定専用のBeanを作成するメリット

4. 設定専用のBeanを作成するメリット
4. 設定専用のBeanを作成するメリット

設定項目が増えてきた場合は、設定専用のBeanを用意する方法がおすすめです。設定を一か所にまとめることで、管理しやすくなります。

また、他のBeanからDIで注入できるため、設定の再利用性も高まります。


import io.micronaut.context.annotation.ConfigurationProperties;

@ConfigurationProperties("app")
public class AppConfig {

    private String title;
    private String version;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }
}

5. 設定Beanを他のBeanに注入する

5. 設定Beanを他のBeanに注入する
5. 設定Beanを他のBeanに注入する

設定専用Beanを作成したら、通常のDIと同じように他のBeanへ注入できます。これにより、設定値を意識せずにロジックを書けるようになります。

アプリケーション全体で共通の設定を扱う場合に非常に便利です。


import jakarta.inject.Singleton;

@Singleton
public class SampleService {

    private final AppConfig appConfig;

    public SampleService(AppConfig appConfig) {
        this.appConfig = appConfig;
    }

    public void printInfo() {
        System.out.println(appConfig.getTitle());
    }
}

6. DIと設定注入を組み合わせる設計の考え方

6. DIと設定注入を組み合わせる設計の考え方
6. DIと設定注入を組み合わせる設計の考え方

Micronautでは、設定値を直接参照するのではなく、DIを通して受け取る設計が推奨されます。これにより、テスト時に設定を差し替えやすくなります。

設定に依存したクラスを疎結合に保てる点も、大きな利点です。

7. 初心者がつまずきやすいポイント

7. 初心者がつまずきやすいポイント
7. 初心者がつまずきやすいポイント

設定キーの書き間違いや、階層構造の不一致はよくあるミスです。設定ファイルとJava側の指定が一致しているかを必ず確認しましょう。

また、Beanとして管理されていないクラスには設定が注入されない点にも注意が必要です。

8. 設定注入を使いこなすためのコツ

8. 設定注入を使いこなすためのコツ
8. 設定注入を使いこなすためのコツ

設定値は増えすぎると管理が難しくなります。意味のある単位でまとめ、設定専用Beanを活用すると見通しが良くなります。

MicronautのDIと設定注入を正しく理解することで、保守性の高いアプリケーションを作れるようになります。

関連記事:
カテゴリの一覧へ
新着記事
New1
Micronaut
Micronautの@Factoryとは?複雑なBean生成を管理するための方法を解説
New2
Quarkus
QuarkusのDIとCDIを完全理解!@Producesでプロデューサーメソッドを使う方法を初心者向けに解説
New3
Java
JavaのStringBufferクラスを徹底解説!スレッド安全な文字列操作の仕組みと使い分け
New4
Micronaut
Micronautで非同期HTTP処理を行う方法!リアクティブ対応の基礎知識
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkus入門!GitHub ActionsでCI/CDパイプラインを構築して自動ビルドを実現する方法
No.2
Java&Spring記事人気No2
Java
Javaのコンパイルと実行の流れを解説!JVM・JDK・JREの違いも初心者向けに整理
No.3
Java&Spring記事人気No3
Quarkus
QuarkusのCI/CD入門!GitHub Actionsで自動デプロイを実現する方法
No.4
Java&Spring記事人気No4
Micronaut
Micronautのルーティング設定ガイド!プレフィックス付与とAPIバージョニングの基本
No.5
Java&Spring記事人気No5
Micronaut
Micronautのフィルタ徹底解説!HTTPリクエスト共通処理をスマートに追加する方法
No.6
Java&Spring記事人気No6
Java
Java Optional ifPresentの使い方を徹底解説!nullチェックをスマートに省略する方法
No.7
Java&Spring記事人気No7
Java
Java Functionインタフェースの使い方を完全ガイド!map変換と処理チェーンを理解する
No.8
Java&Spring記事人気No8
Java
JavaのString比較を徹底解説!equalsと==の違い、初心者が陥る罠とは?