1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Java]spring frameworkのプロジェクト構造について学習

Posted at

背景

最近Java(Springboot)の開発プロジェクトに配属されまして、もしかしたらコーディングするかもしれません。がっつり開発していたのは10年以上も前で、カッコイイFWも使ってなく、if文for文を駆使してロジック書くような現場でした。

今までソースは順々に追って読んで理解していたのですが、FWは既にある色んな部品を使いまくってシステムを作っていくようでした。
なので、ソースを追って理解することが難しく、フレームワークとしての決まりごとや、使えるものを覚えようって感じです。

まずは構造から。

Spring プロジェクトでよく見るパッケージ

✅ Entity

  • 目的
    データベースのテーブルと対応するクラス
  • 使われ方
    • DB に保存・取得するときに使う

✅ Model

  • 目的
    プロジェクトによって意味が変わるが、だいたい「アプリ内で使うデータ」
  • 使われ方
    • View に渡すデータとして使うことがある
    • Entity と同じ意味で使われることもある

✅ DTO(Data Transfer Object)

  • 目的
    API のリクエストやレスポンスでやりとりするデータ用クラス
  • 使われ方
    • Controller で返す
    • Entity から変換して作る

✅ Repository

  • 目的
    データベースにアクセスするためのクラス
    (SQL を直接書く代わりに利用する)
  • 使われ方
    • DB からデータを取り出す
    • DB にデータを保存・更新・削除する
    • Service から呼び出して使う

🔑 まとめ

  • Entity → DB のデータを表す
  • Model → アプリ内で使うデータ(意味はプロジェクトごとに変わる)
  • DTO → API 入出力用のデータ
  • Repository → SQL の代わりに使う、DB とやりとりするクラス

さいごに

これらのパッケージに違いがよく分からなくてAIに教えてもらいました。
いい感じに分かりやすく教えてもらえたので、ひとまず自分用のメモとして残します。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?