CRUDサービス層
エンティティにCRUD操作を提供するサービス層を実装します。
「CRUDサービス層」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン2/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。
導入
サービスレイヤーはコントローラーとリポジトリの間に位置し、ビジネスロジックを集約します。
コード:Userエンティティ
前に定義したUserエンティティを引き続き使用します。
import jakarta.persistence.*;@Entity
public class User {
@Id @GeneratedValue
private Long id;
private String name;
// getters/setters omitted
}
コード:サービスのCRUD
サービスはリポジトリの呼び出しをラップし、必要に応じてビジネスルールを追加します。
import org.springframework.stereotype.Service;import java.util.*;
@Service
public class UserService {
private final UserRepository repo;
public UserService(UserRepository repo) { this.repo = repo; }
public List<User> all() { return repo.findAll(); }
public User add(User u) { return repo.save(u); }
public Optional<User> find(Long id) { return repo.findById(id); }
public void delete(Long id) { repo.deleteById(id); }
}
コード:サービスを使うコントローラー
コントローラーは、リポジトリを直接呼び出すのではなく、サービスを呼び出すようになります。
import org.springframework.web.bind.annotation.*;import java.util.*;@RestController
@RequestMapping("/users")
public class UserController {
private final UserService service;
public UserController(UserService service) { this.service = service; }
@GetMapping
public List<User> all() { return service.all(); }
@PostMapping
public User add(@RequestBody User u) { return service.add(u); }
@GetMapping("/{id}")
public User one(@PathVariable Long id) { return service.find(id).orElse(null); }
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) { service.delete(id); }
}
メリット
メリットは、コントローラーがすっきりすること、ロジックを再利用できること、テストが容易になること、アーキテクチャが明確になることです。
使用方法
エンドポイントをテストします:POST /users、GET /users、GET /users/{id}、DELETE /users/{id}。
サービスレイヤーの確認
クイックチェック:Spring Bootでサービスレイヤーが役立つのはなぜですか。
まとめ
まとめ:CRUDを備えたサービスレイヤーを作成し、コントローラーで使用して、処理を分離するメリットを確認しました。
よくある質問
「CRUDサービス層」レッスンは無料ですか?
はい。「CRUDサービス層」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。
「CRUDサービス層」で何を学びますか?
エンティティにCRUD操作を提供するサービス層を実装します。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Java Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/3です。
「CRUDサービス層」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJava Academyレッスンでコードを書いて実行できますか?
はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- JPA/H2とリポジトリ
- CRUDサービス層
- エラーハンドリングとAdvice