📚
Re:ゼロから始めるSpring Boot #2 プロジェクトモジュール設計
シングルモジュールプロジェクト
1つのプロジェクトに1のモジュールしか存在しないこと。
単一の注文機能を持つプロジェクトを作成する場合は、モジュール構造は以下となる。
"設定よりも規約(Convention OVer Configuration, COC)" の理念であるため、各レイヤーとそれぞれの役割を規約にできる。
src
│
main
├─java
└─com
└─rezerosb
└─order
├─controller # コントローラーレイヤー:リクエストマッピング、フォーム受付、バリデーションなどの業務ロジック(サービス)を利用するための前処理・後処理を行う。
├─model # モデル:リポジトリーが取り扱う集合をなすオブジェクトを表現したもの。
│ ├─dto
│ └─entity
├─repository # 業務データ操作レイヤー:CRUD処理、検索、集計などを行う。
└─service # サービスレイヤー:アプリケーション固有の業務ロジック。
└─RezeroSpringBoot02SinglemodApplication # デフォルトではスタータークラスはモジュールと同じ階層でないとダメ。
マルチモジュールプロジェクト
1つのプロジェクト(機能)に複数モジュールが存在すること。
モジュール構造は以下となる。
├─java
└─com
└─rezerosb
└─crm # CRM機能にactivityとsaleなどの複数モジュールを作成する設定。
├─activity
│ ├─controller
│ ├─repository
│ └─service
├─sale
│ ├─controller
│ ├─repository
│ └─service
└──RezeroSb02MulmodApplication # デフォルトではスタータークラスはモジュールと同じ階層でないとダメ。
レイヤードアーキテクチャ
Springでは各コンポーネントは責務に応じてアノテーションが容易されいる。
下記リンク先が参考になる。
Discussion