今回はSpring MVCについて簡単にみていきたいと思います。
Springの基本3Layer
効率よく開発を行うために階層(Layer)化して行うことが一般的です。基本階層としてはプレゼンテーション層、サービス層、データアクセス層のように3つの階層と全ての階層で利用されるドメインモデルで構成されています。

各階層ごとに独立的に分離して構築しなければならないし、各階層で担当している機能が含まれています。
階層間の通信はその階層から提供されるインタフェースを利用して行うことが一般的です。
それでは一つ一つみていきましょう。
プレゼンテーション層(Presentation Layer)
- ブラウザ上のWebクライアントのリクエストとレスポンスを処理
- サービス層とデータアクセス層で発生するExceptionに対する処理
- 最終的なUIで入力されたデータのバリデーション処理
- ビジネスロジックと最終的なUIを分離するために、コントローラー機能
- @Controllerアノテーションを使用
サービス層(Service Layer)
- アプリケーションのビジネスロジック処理
- ビジネスに関連するドメインモデルの適合性検証
- トランザクション処理
- プレゼンテーション層とデータアクセス層をつなぐ役割
- @Serviceアノテーションを使用
データアクセス層(Data Access Layer)
- 永続ストレージ(DB)のデータを操作するデータアクセスロジックをオブジェクト化する。
- データのCRUD(登録、検索、更新、削除)処理を行う。
- 一般的に@Repositoryアノテーションを使用
ドメインモデル(Domain Model)
- リレーショナルデータベースのエンティティに似た概念
- VO(Value Object)またはDTO(Data Transfer Object)クラス
- プレゼンテーション層、サービス層、データアクセス層で使用される。
