본문 바로가기

개발(합니다)/Java&Spring

[spring boot 설정하기-2] Lombok 설정 및 사용 방법

반응형

Intellij 사용자라면 Lombok plugin 설치와 Enable annotation processing 설정이 완료되어야 합니다.


1. Lombok(롬복)이란?

개발을 하면서 데이터를 담기 위해 객체를 만드는 VO/DTO/Domain 객체를 생성합니다.
생성한 객체를 효율적으로 사용하기 위해 getter/setter, toString, Builder를 만드는 과정이 매번 발생합니다.
이러한 객체들이 자주 사용하는 기능을 어노테이션으로 쉽게 설정할 수 있는 기능을 제공하는게 lombok입니다.

2. Lombok 의존성 추가 및 설정

2-1. 의존성 추가

https://projectlombok.org/setup/gradle
해당 사이트에 들어가면 gradle에서 설정하는 방법을 확인할 수 있습니다.

의존성을 추가한 후 gradle을 load gradle changes를 합니다.

(소스 오른쪽에 코끼리를 눌러주시면 됩니다.)

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

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

의존 추가 전/후

2-2. 의존성 추가 확인

common 패키지와 CommonTest.java를 생성하여 의존성이 잘 적용되었는지 확인합니다.
private String text; 를 추가하고 @Builder를 추가하여 lombok이 적용되었는지 확인합니다.

3. Lombok 어노테이션 설명

어노테이션 설명 세부 설정
@Getter
@Setter
Getter 메서드 자동 생성
Setter 메서드 자동 생성
- lazy : 지연 호출로 동기화를 이용하여 1번만 호출
- AccessLevel : 접근 제한 레벨 설정
@ToString ToString 메서드 자동 생성 - callSuper : 상위 클래스 toString 호출 여부
- exclude : 출력하지 않을 필드명 입력
- includeFieldNames : 필드명 생략 여부
@Data @ToString, @EqaulsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 자동생성  
@EqualsAndHashCode equals, hashcode 메서드 자동생성 - of : 포함할 필드
- exclude : 제외할 필드
@Val class로 final 키워드 대신 사용하는 변수   
@NonNull Null 일 경우 NullPointerException 발생  
@Cleanup 자동 리소스 관리로 close() 메서드 관리  
@NoArgsConstructor 인자 없는 생성자 생성  
@RequriedArgsConstructor 필수 인자를 가지는 생성자 생성  
@AllArgsConstructor 모든 인자를 가진 생성자 생성  
@Value 불변 선언  
@Builder Builder API 지원  
@SneakyThrows Exception 발생시 체크된 Throable로 전달  
@Synchronized 메서드 동기화 Lock 설정  
@Log 로그를 설정 - 기본 변수명 : Log이며 config 파일 설정 후 명칭 변경 가능
- 로그 종류 : @Log, @Slf4j, @CommonLog, Xslf4j, JBossLog 등
반응형