본문 바로가기
☕Java/Spring

[20210820] Lombok을 이용한 로그인, 게시판 2 - Lombok 애너테이션 정리

by 캔 2021. 8. 20.

Lombok은 getter와 setter, equals()나 hashcode() 등 메서드를 애너테이션(annotation)으로 대체하여 코드를 줄여주는 자바 라이브러리이다.

 

val

final 지역변수. 즉, 상수. 자바스크립트의 'val'에 해당.

 

var

지역 변수. 자바스크립트의 'var'에 해당. (참고: 그렇지만, 자바스크립트처럼 한 번 타입이 결정되고 나면 다른 타입으로 쓸 수는 없음.)

 

@NonNull

Null 방지

 

@Cleanup

자동 리소스 관리. close() 메서드 호출

 

@Getter/@Setter

getter(getXXXX()), setter(setXXXX()) 생성

 

@ToString

toString() 메서드 생성

 

@EqualsAndHashCode

equals(), hashcode() 메서드 생성

 

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

인수 없는 생성자, 초기화되지 않은 final 필드와 @NonNull이 붙은 필드에 대한 생성자, 모든 필드를 인수로 하는 생성자 생성

 

@Data

@ToString, @EqualsAndHashcode, @Getter(모든 필드 대상), @Setter(final이 아닌 필드 대상), @RequiredArgsConstructor를 합쳐놓은 것

 

@Value

불변 클래스

 

@Builder

객체 생성을 쉽게

 

@SneakyThrows

자동으로 예외 처리

 

@Synchorized

synchronized 제한자

 

@With

필드 하나만 바꾸고 나머지는 똑같은 불변 세터

 

@Getter(lazy=true)

처음 한 번만 계산하는 getter

 

@Log

로그 작성