Lombok 활용하기

Gradle 설정

configurations {
    compileOnly {
        extendsFrom annotationProcessor
  }
}

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok:1.18.20'
    annotationProcessor 'org.projectlombok:lombok:1.18.20'

    testCompileOnly 'org.projectlombok:lombok:1.18.20'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.20'
}

추가후에 반드시 아래 설정을 해줘야한다.

  • Preferences -> Compiler -> Annotation Processors

image-20210515235710302

Enable annotation processing을 반드시 설정해줘야한다.

@Getter / @Setter

접근자(getXxx())와 설정자(setXxx())를 자동으로 생성해준다.

다음과 같이 자동으로 getter와 setter가 생성된 것을 확인할 수 있다.

image-20210516001538291

생성자 자동 생성

@NoArgsConstructor

파라미터가 없는 생성자를 자동으로 생성해준다.

@AllArgsConstructor

모든 필드 값을 파라미터로 받는 생성자를 생성해준다.

image-20210516001852822

@RequiredArgsConstructor

@RequiredArgsConstructor 어노테이션은 final이나 @NonNull인 필드 값만 파라미터로 받는 생성자를 만들어준다.

이렇게 생성하면, 코드가 훨씬 깔끔해지고 간편한 것을 확인할 수 있다.

위와 같이 생성자를 직접 만들어줄 필요 없이 해당 어노테이션만 별도로 설정해주면 된다.

intelliJ에서 command + F12로 해당 클래스의 메서드와 변수를 확인할 수 있는데, 아래와 같이 생성자가 생성된 것을 확인할 수 있다.

image-20210516001012197

@ToString

toString() 메소드도 lombok의 @ToString 어노테이션으로 간단하게 생성할 수 있다. 또한, exclude 옵션으로 특정 필드를 제외할 수 있다.

exclude 에 포함된 필드를 제외하고 전체 출력되는 것을 확인할 수 있다.

@Builder

@Builder 로 단순하게 빌더를 생성할 수 있다.

다음과 같이 Item.Builder를 단순히 @Builder 어노테이션 만으로 구현할 수 있다.

상속 받은 클래스 Builder 구현

상속받은 클래스에서는 다음과 같이 생성자에 Builder 어노테이션을 추가해 Builder를 구현할 수 있다.

다음과 같이 부모 클래스의 필드까지 모두 Builder 내부에 구현된 것을 확인할 수 있다.

@SuperBuilder

Lombok 1.18.2 이후부터는 @SuperBuilder 어노테이션으로 상속되는 클래스의 Builder를 생성할 수 있다.

ChildBuilder는 ParentBuilder를 상속받고 있는것을 볼 수 있다.

참고

Last updated

Was this helpful?