Lombok이란?
Lombok은 자바에서 Model(DTO, VO, Domain Class) 클래스를 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등등을 @Getter, @Setter 같은 어노테이션을 통해 자동으로 생성해주는 라이브러리 이다.
시작하기
라이브러리 의존성 설정
Maven
1 | <dependencies> |
Gradle
1 | provided 'org.projectlombok:lombok:1.18.4' |
AssertJ 메소드 임포트
1 | import lombok.*; |
Lombok 어노테이션
@어노테이션 | 설명 | 세부기능 |
---|---|---|
@Getter, @Setter | Getter, Setter 메소드 자동생성 | – AccessLevel : 해당 접근 제한자를 설정 – lazy : 동기화를 이용하여 최초 1회만 호출 |
@ToString | ToString 메소드 자동생성 | – exclude : 출력하지 않을 필드명 입력 – includeFieldNames : 필등명 생략 여부 설정 – callSuper : 상위 클래스 toString호출 여부 설정 |
@EqualsAndHashCode | equals, hashcode 메소드 자동생성 | – of : 포함 할 필드, – exclude : 제외 할 필드 |
@Data | @ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 자동생성 | |
@val | equals, hashcode 메소드 자동생성 | |
@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 등 |
실제 사용
Lombok 어노테이션을 이용하여 만든 Event Class
1 |
|
실제로 만들어진 .class파일
1 | // |