今回の記事はSpringBootのserviceとは?という疑問に答える記事です。SpringBootはWeb開発をJavaで行う場合、非常に便利なフレームワークです。開発を行う際のディレクトリ構成やレイヤーの役割を押さえておくと開発効率的にもよいので、SpringBoot勉強中の方は是非参考にしてみてください。
また、SprtingBootの各ディレクトリ構成に関する記事や各ディレクトリの役割も別記事にまとめいているので是非参考にしてみてください。
- 【SpringBoot】ディレクトリ構成と各ディレクトリの役割ご紹介。
- 【SpringBoot】controllerとは?
- 【SpringBoot】formとは?
- 【SpringBoot】dtoとは?
- 【SpringBoot】serviceとは? ←今回の記事
- 【SpringBoot】repositoryとは?
- 【SpringBoot】mapperとは?
- 【SpringBoot】entityとは?
SpringBootにおけるserviceとは?
serviceとは文字で説明すると「controllerに対して、業務ロジックを提供する。トランザクション境界。」と説明している記事が多いです。
entityへの詰め替えはrepositoryで行うのでserviceでは純粋な業務系のロジックとrepositoryメソッドを呼び出すのみです。
図で表すと下記のような役割です。
SpringBootにおけるserviceの実装
実際にコードでserviceを実装すると下記のようになります。
package com.example.demo.service;
import java.util.List;
import org.springframework.stereotype.Service;
import com.example.demo.dto.SampleDto;
import com.example.demo.repository.SampleRepository;
@Service
public class SampleService {
private SampleRepository repository;
public SampleService(SampleRepository repository) {
this.repository = repository;
}
// ユーザ登録
public void registUser(SampleDto dto){
// 入力チェック
// ロジック系の処理
Integer result = repository.insertUser(dto);
if (result.equals(1)) {
// エラー処理
}
// 正常処理
return;
}
// 一覧取得
public List<SampleDto> getUserList(){
List<SampleDto> data = repository.selectAll();
// 個数の集計など
return result;
}
}
repositoryのインスタンスをコンストラクタインジェクションを使ってインスタンスを作成。
public void registUser(SampleDto dto){
// 入力チェック
// ロジック系の処理
Integer result = repository.insertUser(dto);
if (result.equals(1)) {
// エラー処理
}
// 正常処理
return;
}
上記の部分のように、repositoryのinsertメソッドを使用するために、入力チェックやロジック系の処理を行なってからinsertを行うなどをここで設定します。
さらにserviceのプロジェクト全体の動きを知りたい方はは下記記事で各レポジトリの役割とサンプル的なアプリコードがありますので、そちらでserviceの役割を追ってみてください。
「【SpringBoot】ディレクトリ構成と各ディレクトリの役割ご紹介。」
では、今回の記事は以上です。ほかにもSpringBoot関連の記事を記載しているので、是非参考にしてみてください。
コメント