Developer.

Lombok

🪛 한계점

Java 의 구조가 유사한 Constructor, Getter, Setter, toString, equalsTo 등등의 보일러플레이트 코드가 매우 빈번히 발생한다. 이를 위해 Lombok 에서 애너테이션을 추가하는 것만으로 클래스 자체에 보일러플레이트 코드들을 획기적으로 줄일 수 있다.

📂 목차


📚 본문

Lombok 은 Java 에서 반복적으로 작성해야 하는 보일러플레이트 코드를 줄이기 위한 라이브러리이다.
읽기전에 밑의 기본적인 애너테이션은 숙지하고 간다.

애너테이션 기능 설명
@Getter, @Setter 각 필드에 대해 getter, setter 자동 생성
@ToString 객체의 toString() 메서드 자동 생성
@EqualsAndHashCode equals()hashCode() 메서드 자동 생성
@NoArgsConstructor 파라미터가 없는 기본 생성자 자동 생성
@AllArgsConstructor 모든 필드를 포함하는 생성자 자동 생성

@RequiredArgsConstructor

생성자가 전부 필요한 것, 전부 필요없는 것 뿐 아니라 필요한 필드만 생성자로 추가하도록 할 수도 있다.
final, @NonNull 이 붙으면 무조건 Lombok 은 RequiredArgsConstructor의 생성자의 인자로 등록해준다.

@RequiredArgsConstructor
public class UserService {
    private final UserRepository userRepository;
    @NonNull
    private String name
    private int age; // 이건 포함 안됨
}

@NotEmpty, @NotNull 은 다른 패키지의 validation 애너테이션이다. 주의하자.

@Builder

빌더 패턴 메서드를 자동 생성한다.

// User.class
import lombok.Builder;
import lombok.ToString;

@Builder
@ToString
public class User {
    private String name;
    private int age;
    private String email;
}

// Main.class
public class Main {
    public static void main(String[] args) {
        User user = User.builder()
                        .name("홍길동")
                        .age(25)
                        .email("hong@example.com")
                        .build();
        System.out.println(user);
    }
}

@Data

@Data = @Getter + @Setter + @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
다른 설명은 하지 않겠다.


📁 관련 글