🦁
[LikeLion Backend] Week 2|Spring Bootを用いたユーザーCRUD機能の実装(JPA未使用)
🧩 今回の目的
멋쟁이사자처럼(LikeLion)2025年度バックエンドトラックの2週目では、
Spring Bootを用いたRESTfulなユーザー管理APIの構築を行いました。
この週は、まだJPAなどの本格的なDB連携は行わず、メモリ上のリスト(List<User>)を仮想DBとして使用しています。
🌱 今回学んだ内容
- Spring Bootプロジェクトの基本構造(Controller / Service / Repository / Domain)
- REST API設計(
@GetMapping
,@PostMapping
,@PutMapping
,@DeleteMapping
) -
ResponseEntity
を用いたHTTPレスポンス制御 -
Optional<User>
を用いたnull安全な処理 - SpringのDI(依存性注入)構造の理解
🔧 実装機能
機能 | 内容 |
---|---|
Create |
POST /users :ユーザー新規作成 |
Read (All) |
GET /users :すべてのユーザー一覧を取得 |
Read (One) |
GET /users/{id} :特定IDのユーザー情報を取得 |
Update |
PUT /users/{id} :特定IDのユーザー情報を更新 |
Delete |
DELETE /users/{id} :特定IDのユーザー情報を削除 |
📁 ディレクトリ構成(簡易)
Week02/
├── SpringPrac/
│ ├── build.gradle
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/likelion/springprac/
│ │ │ │ ├── controller/UserController.java
│ │ │ │ ├── service/UserService.java
│ │ │ │ ├── repository/UserRepository.java
│ │ │ │ └── domain/User.java
│ │ │ └── resources/application.properties
│ └── sql/
│ ├── create_tables.sql
│ ├── insert_data.sql
│ └── select_join.sql
📌 補足事項
- DB連携は未実装(JPA未使用)
- UserRepository は List<User> を使って、IDの自動採番と基本的なCRUD操作を実装
- UserService では、Optional.orElseThrow() や nullチェックによる例外処理を追加
- SQLはMySQL構文に基づいており、user テーブル名の代わりに予約語回避のため users を使用
💻 GitHubリポジトリ
✍️ 今後の展望
次週以降は、JPAを使用したデータベース連携, H2やMySQLとの接続,
認証処理(Spring Security)やバリデーション処理などへと進んでいきます。
バックエンドシステムの構築に必要な技術を段階的に学び、
最終的にはAIプロダクトに接続可能な堅牢なバックエンドAPIを設計・実装することを目指しています。
Discussion