Spring Bootのアーキテクチャと一般的なディレクトリ構成

この記事を書いたチーム:frontier
Spring Bootのアーキテクチャと一般的なディレクトリ構成

概要 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

Spring BootはJavaのフレームワークの一つであり、Webアプリケーションやマイクロサービスの開発に向いています。本記事では、Spring Bootを初めて学習する際に疑問に思ったSpring Bootのアーキテクチャやディレクトリ構成について記載します。 

 

Spring Bootのアーキテクチャ 

Spring Bootは、主に3つのレイヤーで構成されています。 

・プレゼンテーション層 
UIを提供するレイヤーです。主に、ControllerViewが含まれます。 

・ビジネスロジック層(ドメイン層) 
ビジネスロジックを実行するレイヤーです。主に、Serviceクラスが含まれます。 

・データアクセス層 
データベースアクセスを行うレイヤーです。主に、Repositoryが含まれます。 

 

一般的なパッケージ(ディレクトリ)構成 

Spring Bootでは、以下のようなディレクトリ構成が一般的です。 

 

・src/main/java 
Javaのソースコードを配置するディレクトリです。このディレクトリ以下には、パッケージ名に応じたサブディレクトリを作成し、各クラスを配置します。 

 

・src/main/java/{package name}/config 
Spring Bootの設定クラスを配置するディレクトリです。主に、Webアプリケーションの設定やデータベース接続などを行うクラスを配置します。 

 

・src/main/java/{package name}/controller 
コントローラークラスを配置するディレクトリです。主に、HTTPリクエストを受け付け、サービス層に処理を委譲するクラスを配置します。 

 

・src/main/java/{package name}/service 
サービスクラスを配置するディレクトリです。主に、ビジネスロジックを実装するクラスを配置します。 

 

・src/main/java/{package name}/repository 
リポジトリクラスを配置するディレクトリです。主に、データベースへのアクセスを行うクラスを配置します。 

 

・src/main/resources 
リソースファイルを配置するディレクトリです。主に、プロパティファイルやHTMLファイル、CSSファイル、JavaScriptファイルなどが含まれます。 

 

・src/main/resources/static 
静的ファイル(HTMLファイル、CSSファイル、JavaScriptファイルなど)を配置するディレクトリです。 

 

・src/main/resources/templates 
動的なHTMLファイルを配置するディレクトリです。主に、Thymeleafなどのテンプレートエンジンを使用する場合に利用されます。 

 

・src/main/resources/application.properties 
Spring Bootアプリケーションの設定を記述するファイルです。データベース接続情報やサーバーのポート番号などを指定します。 

 

終わりに 

これらは一般的な構成であるため、不備やデメリットが発生する可能性があります。そのため、チームやプロジェクトごとのルールに従って適切な開発をしていく必要があります。 

間違いや指摘等あるかもしれませんが、Spring Bootを学習中の方のお役になれば幸いです。 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス