[Spring] 롬복 (Lombok)

Seongho·2023년 2월 1일
0

Spring

목록 보기
9/13

Lombok이란?

자바에서 애너테이션 기반으로 코드를 자동으로 작성해주는 라이브러리이다.
클래스에 애너테이션을 붙여줌으로써 사용할 수 있다.
만약 롬복에서 자동으로 생성해주는 setter, getter, constructor에 어떤 내부 로직을 추가해야 할 때, 사용하기 좋지 않을 수 있고, 코드가 눈에 보이지 않기 때문에 직관력이 떨어진다는 이유로 호불호가 있다.
하지만, 편의성이 높고, 반복적인 코드 작성이 줄어드는 면에서 인기가 올라가고 있는 중이다.

자주 사용하는 롬복 Annotation

@Getter @Setter

적용 이전

public class Student {
    private int studentNum;
    private String name;
    private int age;

    public int getStudentNum() {
        return studentNum;
    }

    public void setStudentNum(int studentNum) {
        this.studentNum = studentNum;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

적용 이후

import lombok.Getter;
import lombok.Setter;

@Getter @Setter
public class Student {
    private int studentNum;
    private String name;
    private int age;
}

@NoArgsConstructor , @AllArgsConstructor , @RequiredArgsConstructor

적용 이전

public class Student {
    private int studentNum;
    private final String name;
    private final int age;
	
    //NoArgsConstructor
    public Student() { }
	
    //AllArgsConstructor
    public Student(int studentNum, String name, int age) {
        this.studentNum = studentNum;
        this.name = name;
        this.age = age;
    }
	
    //RequiredArgsConstructor
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

적용 이후

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

@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class Student {
    private int studentNum;
    private final String name;
    private final int age;
}
  • @NoArgsConstructor : 인자 없는 생성자
  • @AllArgsConstructor : 모든 필드값을 인자로 갖는 생성자
  • @RequiredArgsConstructor : final이 붙은 필드값을 인자로 갖는 생성자

@ToString

적용 이전

public class Student {
    private int studentNum;
    private String name;
    private int age;

    @Override
    public String toString() {
        return "Student{" +
                "studentNum=" + studentNum +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

적용 이후

import lombok.ToString;

@ToString
public class Student {
    private int studentNum;
    private String name;
    private int age;
}

출력을 원하지 않는 변수 있을 때

import lombok.ToString;

@ToString(exclude = "age")
public class Student {
    private int studentNum;
    private String name;
    private int age;
}

Lombok 라이브러리 적용 방법(윈도우)

  1. build.gradle에 설정 추가
  2. File -> Settings -> plugin -> lombok 검색 -> 설치 실행 -> 재시작
  3. File -> Settings -> Annotation Processors 검색 -> Enable annotation processing 체크 -> 재시작
profile
Record What I Learned

0개의 댓글