Java Spring Boot その6
前回のモック部分を DB 接続に変更します。
その前に、今回使う DB、O/R マッパーや概念の説明を先にします。
DB, O/Rマッパーについて
DB は H2、O/R マッパーは Spring Data JPA を使用します。
O/R マッパーというのは DB のデータをオブジェクトにマッピングするためのライブラリです。
DB のデータを Java のクラス、オブジェクトとして扱うためのライブラリだと思ってください。
JPA は Java Persistence API の略で、Java の O/R マッパーの仕様です。
Spring Data JPA は JPA を拡張したライブラリです。
クラス構成
また、今回は下記の通りクラスを分割し、責務を分散します。
- エンティティ
- リポジトリ
- サービス
- コントローラ
エンティティ
DB の情報を Java オブジェクトに表したもの テーブルがクラス、カラムがフィールドになっている。
リポジトリ
エンティティを登録、検索などといった処理を担うクラス。DB のデータを取得し、エンティティへマッピングする処理等を行う。
DB からのデータ取得方法などはリポジトリクラスに隠蔽させる。
サービス
ビジネスロジックを記述する。リポジトリを使用してデータの取得等もこのクラスが行う。
コントローラ
リクエストをマッピングするクラス
サービスクラスを利用してリクエストに必要な処理を実行する。
MVC のレイヤーと、処理内容を表にすると
リクエスト | → | 処理 | → | DB | |
---|---|---|---|---|---|
アプリケーション層 | コントローラ | ||||
ドメイン層 | サービス | ||||
ドメイン層 | リポジトリ | ||||
ドメイン層 | エンティティ |
だと私は考えています。※あくまで私の考えです。
今回はここまで。実際のソースは次の記事で。