- 開発技術
Spring Bootのアーキテクチャと一般的なディレクトリ構成
- #SpringBoot
概要
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
Spring BootはJavaのフレームワークの一つであり、Webアプリケーションやマイクロサービスの開発に向いています。本記事では、Spring Bootを初めて学習する際に疑問に思ったSpring Bootのアーキテクチャやディレクトリ構成について記載します。
Spring Bootのアーキテクチャ
Spring Bootは、主に3つのレイヤーで構成されています。
・プレゼンテーション層
UIを提供するレイヤーです。主に、ControllerやViewが含まれます。
・ビジネスロジック層(ドメイン層)
ビジネスロジックを実行するレイヤーです。主に、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. 詳細はこちらから>