MVCモデルは、アプリケーションの設計パターン
M:Model
データ構造とDB処理全般、ビジネスロジックなど
V:Veiw
HTML,templete
C:Controller
requestを受け取って、modelからデータを取り出して、Veiwに返す。
- ユーザーがアプリケーションにリクエストを送信
- リクエストはコントローラーによって受け取られる
- コントローラーは必要なデータをモデルに要求する
- モデルはデータベースからデータを取得する
- モデルは情報をコントローラーに返す
- コントローラーは取得したデータをビューに渡す
- ビューはデータを適切に整形し、ユーザーに表示する
SpringBootでは、
レイヤー | クラス名の例 | Springアノテーション |
---|---|---|
Controller | StudentController |
@RestController |
Service | StudentService |
@Service |
Repository | StudentRepository |
@Repository または @Mapper (MyBatis) |
service(ビジネス層),repository(永続下層)は model に属する。
service層は
Controller と Repository との橋渡しで、ControllerはServiceを呼び出し、ServiceがRepositoryを使って処理をする。直接ControllerがRepositoryを使わないことで責任を分離できる。
利点
- 責任を分けることで、開発、保守、テストがしやすくなる。
- 再利用可能なコンポーネントにすることで、開発速度があがる。
- コンポーネント間の疎結合により、チームで開発しやすい。
注意点
- コンポーネント間の相互作用が煩雑になることがあるので、適切な設計が必要。