カテゴリ: Micronaut 更新日: 2026/02/07

Micronautプロジェクトの基本構成を完全ガイド!初心者でもわかるディレクトリ構造入門

Micronautプロジェクトの基本構成を理解しよう!ディレクトリ構造を解説
Micronautプロジェクトの基本構成を理解しよう!ディレクトリ構造を解説

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

生徒

「Micronautのプロジェクトって、どんなフォルダ構成になっているんですか?」

先生

「Micronautのプロジェクトはシンプルで、どのフォルダに何を置くかが決まっています。」

生徒

「そのフォルダを理解しておけば開発が楽になりますか?」

先生

「もちろんです。プロジェクト構成を理解すると、どこにコードを書くべきか迷わなくなります。では実際の構成を見ていきましょう。」

1. Micronautプロジェクト構成とは?|なぜ構造を知ることが重要なのか

1. Micronautプロジェクト構成とは?|なぜ構造を知ることが重要なのか
1. Micronautプロジェクト構成とは?|なぜ構造を知ることが重要なのか

Micronaut(マイクロノート)のプロジェクトは、Java開発で広く使われている「標準ディレクトリレイアウト」に基づいています。これは、初心者の方でも「どこに何を書けばいいのか」が直感的にわかるような仕組みです。

例えば、私たちが普段「料理のレシピ」を整理するとき、主食・おかず・デザートと分けてファイルに入れるのと同じように、Micronautも「動くプログラム」「設定」「テスト」を別々の引き出し(フォルダ)に整理します。このルールを守ることで、大規模なアプリになっても迷子にならずに開発を進めることができます。

ポイント: Micronautは「設定より規約(Convention over Configuration)」という考え方を大切にしています。決まった場所に置くだけで、フレームワークが自動的に中身を認識してくれるため、難しい設定を自分で書く必要がありません。

未経験の方に向けて、最もシンプルな「プログラムの置き場所」のイメージをJavaコードで見てみましょう。以下のコードは、アプリの心臓部となる非常に簡単な例です。


package example.micronaut;

import io.micronaut.runtime.Micronaut;

// このクラスが「アプリの起動スイッチ」になります
public class Application {
    public static void main(String[] args) {
        // Micronautに「さあ、アプリを動かして!」と命令する一行です
        Micronaut.run(Application.class, args);
    }
}

このように、プログラムはsrc/main/javaという決まった階層に配置します。この構成を理解することは、エラーの少ないスムーズな開発への第一歩となります。それでは、具体的な各フォルダの詳細を順番に確認していきましょう。

2. 基本的なディレクトリ構造を理解しよう

2. 基本的なディレクトリ構造を理解しよう
2. 基本的なディレクトリ構造を理解しよう

Micronautのプロジェクトを作成すると、次のようなフォルダが生成されます。これはGradleを使った標準構成の例です。


project/
 ├─ src/
 │   ├─ main/
 │   │   ├─ java/
 │   │   ├─ resources/
 │   ├─ test/
 │       ├─ java/
 │       ├─ resources/
 ├─ build.gradle
 ├─ gradlew
 └─ settings.gradle

それぞれのフォルダに役割があります。たとえば、src/main/javaにはアプリのメインロジックが入り、src/main/resourcesには設定ファイルを置きます。テストはsrc/test/javaに保存されます。

3. src/main/java に配置するコードの例

3. src/main/java に配置するコードの例
3. src/main/java に配置するコードの例

Micronautのプロジェクトでは、エントリーポイントとなるクラスは通常Applicationという名前で作られます。ここでは基本的なサンプルコードを見てみましょう。


package example.micronaut;

import io.micronaut.runtime.Micronaut;

public class Application {
    public static void main(String[] args) {
        Micronaut.run(Application.class, args);
    }
}

このクラスはアプリケーション全体を起動する役割を持っています。Micronautアプリで最初に実行されるクラスです。

4. コントローラが置かれる場所とサンプル

4. コントローラが置かれる場所とサンプル
4. コントローラが置かれる場所とサンプル

HTTPアクセスを処理するコントローラは、同じsrc/main/javaに置きます。ディレクトリ構造は自由ですが、一般的にはcontrollerというフォルダを作ってまとめます。


package example.micronaut.controller;

import io.micronaut.http.annotation.*;

@Controller("/hello")
public class HelloController {

    @Get("/")
    public String index() {
        return "Hello Micronaut!";
    }
}

コントローラはURLへのアクセスに応じて文字列を返します。このコードを置く場所を迷わないためにもプロジェクト構成を理解することが重要です。

5. 設定ファイルが置かれる src/main/resources

5. 設定ファイルが置かれる src/main/resources
5. 設定ファイルが置かれる src/main/resources

Micronautの設定ファイルであるapplication.ymlはこのフォルダに置きます。アプリケーションの環境設定やポート番号などを変更できます。


micronaut:
  application:
    name: demo-app

設定ファイルはシンプルですが、アプリの動作を大きく左右する重要な役割を持っています。

6. テストコードの配置場所

6. テストコードの配置場所
6. テストコードの配置場所

テストコードはsrc/test/javaに配置します。MicronautではJUnitを使ったテストが一般的で、標準的なJavaテストと同じ形式で書けるため初心者にも理解しやすいです。


package example.micronaut;

import io.micronaut.runtime.server.EmbeddedServer;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

class ApplicationTest {

    @Test
    void testApplicationRuns() {
        assertTrue(true);
    }
}

テストフォルダを分けておくことで、アプリ本体とテストが混ざらず管理しやすくなります。

まとめ

まとめ
まとめ

ここまで、Micronaut(マイクロノート)プロジェクトのディレクトリ構造と、それぞれの役割について詳しく見てきました。モダンなJavaフレームワークであるMicronautは、効率的な開発をサポートするために非常に整理された構成を持っています。

Micronautプロジェクト構成の全体像とSEOの重要性

Javaエンジニアやバックエンドエンジニアを目指す方にとって、プロジェクトの雛形を正しく理解することは、単にコードを書くこと以上に重要です。Micronautは「AOT(Ahead-of-Time)」コンパイルという技術を採用しており、起動速度が非常に速くメモリ消費量も少ないため、マイクロサービスやクラウドネイティブな環境で非常に高い評価を得ています。

ディレクトリ構成を理解しておくことで、チーム開発でのコミュニケーションコストが下がり、保守性の高いアプリケーションを作成できるようになります。具体的には、どのパッケージにインターフェースを置き、どのディレクトリに設定ファイルを配置するかといった共通認識が、開発スピードを左右します。

各ディレクトリの役割の再確認

本記事で紹介したディレクトリ構成のポイントを改めて整理しましょう。

  • src/main/java: アプリケーションのビジネスロジック、コントローラ、サービス、リポジトリなどのソースコードを配置する、いわば「心臓部」です。
  • src/main/resources: application.ymlや静的ファイル、テンプレートを管理します。環境ごとに設定を切り替える場合もこのフォルダが起点となります。
  • src/test/java: 自動テストのコードを配置します。MicronautのDI(依存性の注入)機能を活用したテストもここで行います。
  • build.gradle(またはpom.xml): 依存関係やビルド設定を定義します。Micronautアノテーションプロセッサの設定もここに含まれます。

実践的なパッケージ構成のサンプル

実際の現場で使われるような、より具体的なパッケージ構成の例を紹介します。プロジェクトが大きくなると、単一のパッケージにクラスを詰め込むのではなく、役割ごとにディレクトリを分けるのが一般的です。


// src/main/java/example/micronaut/service/MessageService.java
package example.micronaut.service;

import jakarta.inject.Singleton;

@Singleton
public class MessageService {
    public String getWelcomeMessage() {
        return "Micronautの世界へようこそ!";
    }
}

// src/main/java/example/micronaut/controller/MessageController.java
package example.micronaut.controller;

import example.micronaut.service.MessageService;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import jakarta.inject.Inject;

@Controller("/api")
public class MessageController {

    @Inject
    MessageService messageService;

    @Get("/welcome")
    public String welcome() {
        return messageService.getWelcomeMessage();
    }
}

このように、コントローラ(Controller)とサービス(Service)を分けることで、ロジックの再利用性が高まり、ユニットテストも書きやすくなります。jakarta.inject.Singleton@Injectといった標準的なアノテーションを使いこなすことが、Micronautマスターへの第一歩です。

今後の学習の進め方

プロジェクトの構成を把握した後は、Micronaut Dataを使ったデータベース連携や、Micronaut Securityを用いた認証・認可機能の追加に挑戦してみるのがおすすめです。また、Dockerを用いたコンテナ化も非常に簡単に行えるため、クラウドへのデプロイを見据えた学習も進めてみてください。

Micronautは、Spring Bootを使っているユーザーにとっても馴染みやすい設計でありながら、より軽量で高速という特徴を持っています。Javaの最新仕様を取り入れつつ、クラウドネイティブ時代に最適なアーキテクチャを学ぶ上で、これほど優れた教材はありません。まずは自分でもプロジェクトを立ち上げ、今回学んだ構造を確認しながら手を動かしてみることを強くおすすめします。

先生と生徒の振り返り会話

生徒

「先生、ありがとうございました!Micronautのフォルダ構成って、思っていた以上にシンプルで分かりやすいですね。特にsrc/main/javaの下に自由にパッケージを作って整理できるのが良いなと思いました。」

先生

「その通りです。基本はJavaの標準的な構造(Maven/Gradle)に従っているので、他のフレームワークから移行してきた人でも混乱しにくいのが特徴ですね。でも、Micronautならではのポイントもありましたね?」

生徒

「はい!設定ファイルのapplication.ymlがsrc/main/resourcesにあることや、Applicationクラスが起動の起点になることですね。さっき教えてもらったMessageServiceのように、サービス層を分ける書き方も試してみたいです。」

先生

「素晴らしい意欲ですね!サービス層を分けるのは、DI(依存性の注入)を理解するのにも最適です。Micronautは実行時にReflectionを使わず、ビルド時にDIの解決を行うので、アプリが肥大化しても起動が遅くなりにくいんですよ。」

生徒

「だから軽量で高速なんですね。あと、テストコードがsrc/test/javaに分かれているのも、大規模開発では絶対に必要だなと感じました。テストが書きやすい設計になっているのもMicronautの魅力ですね。」

先生

「そうなんです。ディレクトリ構成を正しく保つことは、テストのしやすさやメンテナンス性に直結します。次はぜひ、データベースに接続するディレクトリ(repository層)を作って、実際にデータを動かす練習をしてみましょう。コツコツ積み上げていけば、すぐに使いこなせるようになりますよ。」

生徒

「わかりました!まずは今回の構成をベースに、自分だけのWebAPIを作ってみようと思います。ありがとうございました!」

関連記事:
カテゴリの一覧へ
新着記事
New1
Quarkus
Quarkusのフォーム認証を基礎から解説!初心者向けセキュリティ入門ガイド
New2
Micronaut
MicronautプロジェクトをGradleで管理する基礎!build.gradleの役割を解説
New3
Micronaut
LinuxでMicronautをセットアップする方法!パッケージ管理とGradle連携
New4
Java
Javaのswitch文を徹底解説!case・defaultの書き方と実例まとめ
人気記事
No.1
Java&Spring記事人気No1
Quarkus
Quarkusプロジェクト構成の基本を完全解説!初心者でも迷わない「どこに何を書くか」ガイド
No.2
Java&Spring記事人気No2
Quarkus
Quarkusのセキュリティ基礎を初心者でもわかるように解説!
No.3
Java&Spring記事人気No3
Quarkus
QuarkusとMicronautとHelidonを徹底比較!軽量Javaフレームワークの違いを初心者向けに解説
No.4
Java&Spring記事人気No4
Micronaut
MicronautとSpring Bootの違いとは?アーキテクチャ比較で速さの秘密を理解する
No.5
Java&Spring記事人気No5
Quarkus
Quarkusでマイクロサービス開発が加速する理由を徹底解説!Java初心者でも分かるクラウドネイティブ
No.6
Java&Spring記事人気No6
Quarkus
Quarkusの開発環境構築で躓きやすいポイントを完全解説!初心者でも安心して始めるためのチェックガイド
No.7
Java&Spring記事人気No7
Micronaut
Micronautのアプリケーション起動が速い理由を初心者向けに解説
No.8
Java&Spring記事人気No8
Java
Javaのboolean型の使い方を完全ガイド!真偽値と条件分岐の基本