【プログラミング】【java】POJOについて - j-komatsu/myCheatSheet GitHub Wiki
JavaのPOJOについて
🧒 初学者向けの解説
POJOとは?
POJO(Plain Old Java Object) は、特別な制約や継承を受けていない、純粋なJavaのオブジェクトのことを指します。
📖 読み方:ポジョ(ぽじょ)
たとえば、「ただのノート」を思い浮かべてください。高機能なスマートノートではなく、しんぷるでどんな用途にも使える無地のノート。それがPOJOです。
✅ 特徴(表で整理)
特徴 | 内容 |
---|---|
継承や注釈が不要 | 特定のライブラリやフレームワークに依存しない |
JavaBeans に似ている | Getter/Setterを使う場合が多い |
設定や管理がシンプル | 複雑な依存関係がなく、再利用性が高い |
可携性が高い | どのJavaアプリケーションにも簡単に組み込み可能 |
👶 例(入力と出力)
// 入力(POJOの定義)
public class User {
private String name;
private int age;
// Getter
public String getName() {
return name;
}
// Setter
public void setName(String name) {
this.name = name;
}
// Getter
public int getAge() {
return age;
}
// Setter
public void setAge(int age) {
this.age = age;
}
}
// 出力(POJOを使う)
User user = new User();
user.setName("Taro");
user.setAge(25);
System.out.println(user.getName()); // Taro
System.out.println(user.getAge()); // 25
🧠 フロー図(POJOの使われ方)
flowchart TD
A[POJOクラス作成] --> B[データ格納]
B --> C[Getter/Setterでアクセス]
C --> D[アプリケーションで利用]
👨💼 専門者向けの解説
POJOとJavaBeans、DTOとの違い
種別 | 説明 | 使い分け |
---|---|---|
POJO | 特に制約がない純粋なJavaオブジェクト | 汎用的なデータ保持に使う |
JavaBeans | 引数なしのコンストラクタ、getter/setter、Serializableが必要 | SwingやJavaEEなどで使われる標準形式 |
DTO | プレーンなデータ転送用オブジェクト(フィールド中心) | |
REST APIのリクエスト/ レスポンスなど |
☕ POJOをSpringで使う例
// Spring用POJO(エンティティ)
public class Product {
private String id;
private String name;
// constructor, getter, setter...
}
// サービスクラスでの利用
@Service
public class ProductService {
public void printProduct(Product p) {
System.out.println(p.getName());
}
}
🧽 実装のヒント(Tips)
- Lombokを使えばgetter/setterを省略可
import lombok.Data;
@Data
public class Book {
private String title;
private int price;
}
- Jacksonと組み合わせてシリアライズ
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(user); // UserをJSONに
🎯 たとえ話(技術者視点)
POJOはまるで「ただのレコード用紙」。
電子カルテ(SpringやHibernate)に取り込むことで初めてシステムと連携できるが、**POJOそのものはどこでも使える「万能書式」**のような存在です。
📦 よく使う用途
- Webアプリケーションでのフォーム入力値の保持
- REST APIのリクエスト/レスポンスデータ
- DBのデータを一時的に保持するEntity
🔚 まとめ
graph TD
A[POJO] --> B[独立性が高い]
A --> C[シンプルで再利用しやすい]
A --> D[フレームワーク非依存]
POJOは「フレームワークに縛られない」純粋なJavaクラス。
まずはシンプルなPOJOから始めて、必要に応じてDTOやEntityとして進化させましょう。