目次
Lombokで劇的にコードを短縮!
フォームクラス作成が10倍楽になる方法
Lombokとは?
LombokはJava向けのアノテーションベースライブラリです。冗長で繰り返しの多いコード(getter/setter、toString、equals、hashCodeなど)を削減し、コードの可読性を劇的に向上させることができます。
驚愕の事実
通常90行必要なコードが、Lombokを使えばたった9行で書けます!
90行
従来の書き方
9行
Lombok使用時
90%
コード削減率
実際のコード比較
従来の書き方(90行)
public class ReviewRegistFormWithoutLombok {
private Integer restaurantId;
private String userId;
private java.sql.Date visitDate;
private Integer rating;
private String comment;
// デフォルトコンストラクタ
public ReviewRegistFormWithoutLombok() {
}
// getter メソッド(5個)
public Integer getRestaurantId() {
return restaurantId;
}
public String getUserId() {
return userId;
}
public java.sql.Date getVisitDate() {
return visitDate;
}
public Integer getRating() {
return rating;
}
public String getComment() {
return comment;
}
// setter メソッド(5個)
public void setRestaurantId(Integer restaurantId) {
this.restaurantId = restaurantId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public void setVisitDate(java.sql.Date visitDate) {
this.visitDate = visitDate;
}
public void setRating(Integer rating) {
this.rating = rating;
}
public void setComment(String comment) {
this.comment = comment;
}
// toString, equals, hashCode メソッドも必要...
// (さらに30行程度続く)
}
Lombok使用時(9行)
import lombok.Data;
@Data
public class ReviewRegistFormWithLombok {
private Integer restaurantId;
private String userId;
private java.sql.Date visitDate;
private Integer rating;
private String comment;
}
Lombokのメリット
- コード量の大幅削減 – 90%以上のコード削減が可能
- 可読性の向上 – 本質的な部分だけに集中できる
- 保守性の向上 – フィールド追加時の修正忘れが防げる
- 開発効率アップ – IDE(Eclipse等)での自動生成が不要
- バグの削減 – 定型的なコードの記述ミスがなくなる
主要なアノテーション
@Data
getter、setter、toString、equals、hashCodeを一括生成
@Getter
全フィールドのgetterメソッドを生成
@Setter
全フィールドのsetterメソッドを生成
@ToString
toStringメソッドを自動生成
@NoArgsConstructor
引数なしコンストラクタを生成
@AllArgsConstructor
全フィールドを引数に取るコンストラクタを生成
Spring Bootでの使用方法
1. 依存関係の追加
Spring Initializrでプロジェクト作成時に
「Lombok」にチェックを入れる
または、pom.xmlに以下を追加:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2. フォームクラスの作成
package com.example.demo.form;
import lombok.Data;
import java.sql.Date;
@Data
public class ReviewRegistForm {
private Integer restaurantId; // 店舗ID
private String userId; // 利用者ID
private Date visitDate; // 来店日
private Integer rating; // 評価(1-5)
private String comment; // コメント
}
3. コントローラーでの使用
@Controller
public class ReviewController {
@PostMapping("/regist/review")
public String registReview(@ModelAttribute ReviewRegistForm form) {
// フォームオブジェクトに自動でリクエストパラメータが設定される
System.out.println(form.toString());
// 自動的にモデルにも格納される(属性名:reviewRegistForm)
return "confirm-regist-review";
}
}
実際のフォーム処理の流れ
- HTMLフォームでname属性をフィールド名に合わせる
- POSTリクエストでデータを送信
- Spring MVCが自動的にフォームオブジェクトにバインド
- @ModelAttributeでモデルにも自動格納
- テンプレートでモデルのデータを表示
まとめ
Lombokを使うことで、Spring Bootでのフォームクラス作成が劇的に簡単になります。
コード量の削減、可読性の向上、保守性の向上など、多くのメリットがあります。
ぜひあなたのプロジェクトでも活用してみてください!
参考動画





コメントを残す