🐙

SpringプロジェクトにLombokを導入【Gradle】

2024/08/21に公開

Lombokの導入

build.gradleの設定
まず、build.gradleファイルにLombokを追加します。Lombokの依存関係をcompileOnlyとannotationProcessorに追加することで、Lombokのアノテーションを使用できるようになります。

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.24'
    annotationProcessor 'org.projectlombok:lombok:1.18.24'
}

基本的なアノテーション

@Getterと@Setter
@Getterと@Setterは、フィールドのgetterとsetterメソッドを自動生成します。

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class User {
    private Long id;
    private String name;
}

@ToString

@ToStringは、toStringメソッドを自動生成します。

import lombok.ToString;

@ToString
public class User {
    private Long id;
    private String name;
}

@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

これらのアノテーションは、コンストラクタを自動生成します。

import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;

@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class User {
    private Long id;
    private final String name;
}

@Data

@Dataは、@Getter、@Setter、@ToString、@EqualsAndHashCode、@RequiredArgsConstructorを一括で付与します。

import lombok.Data;

@Data
public class User {
    private Long id;
    private String name;
}

Springプロジェクトでの使用例

エンティティクラスの例
Spring BootアプリケーションでのLombokの使用例として、エンティティクラスを紹介します。

import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
@Data
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
}

コントローラークラスの例

コントローラークラスも簡単に作成できます。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/users")
public class UserController {
    
    @GetMapping
    public String getUsers() {
        return "List of users";
    }
}

【まとめ】

Lombokは、Springプロジェクトでの開発を大幅に効率化するための強力なツールです。定型的なコードの自動生成により、開発者はビジネスロジックに集中できるようになります。

Discussion