[Lombok]사용 설명
Lombok 이란?
간단하게 BEAN(POJO) 를 도와주는 라이브러리 입니다.
annotation을 이용하여 getter, setter 등을 생성한다거나, toSring 객체를 지원 한는 등의 기능을 제공 합니다.
사용법은 IDE를 사용할 경우와 javac 를 이용한 compile을 할 경우로 나누어 집니다.
저는 Intellij 기준으로 설명을 하겠습니다.
Intellij 에서 사용하기 위해서는 Lombok plugin을 설치 해야 합니다.
설치 방법은, 다음과 같습니다.
- Using IDE built-in plugin system on Windows:
- File > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
- Using IDE built-in plugin system on MacOs:
- Preferences > Settings > Plugins > Browse repositories... > Search for "lombok" > Install Plugin
- Manually:
- Download the latest release and install it manually using Preferences > Plugins > Install plugin from disk...
원본 : https://github.com/mplushnikov/lombok-intellij-plugin
설치 이후에는 IDE를 재기동 해야 합니다.
이후 Lombok 을 사용하기 위한 compiler 설정을 변경 합니다.
- install plugin
- change compiler setting:
- ... > Compiler > Java Compiler > Use Compiler: Eclipse
- ... > Compiler > Annotation Processors > Enable annotation processing: checked (default configuration)
- ... > Compiler > Additional build process VM options: -javaagent:lombok.jar
원본 : https://github.com/mplushnikov/lombok-intellij-plugin
이 설정을 하지 않을 경우 간혈적으로 오류가 발생하거나, 기동시 getter setter method를 찾을 수 없다고 표출 될 수 있습니다.
마지막으로 Lombok 에서 제공하는 기능에 대한 정리 입니다.
val : final 키워드 대신 사용하는 변수 선언 class
@NonNull : 해당 값이 Null 일경우 NullPointerException을 발생한다.
@Cleanup : 자동 리소스 관리 : close() 메소드를 귀찮음 없게 안전하게 호출
@Getter / @Setter : getter, setter를 생성하지 않도록 지원
@ToString : 모든 필드를 출력하는 toString() 메소드 생성
@EqualsAndHashCode : hascode 와 equals 메소드를 생성
@Data : 다음을 처리 합니다 - @ToString, @EqualsAndHashCode, @Getter(모든 필드), @Setter(모든 필드-final로 성언되지 않은), @RequiredArgsConstructor!
@Builder : Builder API 처럼 사용 할수 있도록 지원
@SneakyThrows : Exception 발생시 체크된 Throable로 감싸서 전달
@Synchronized : 메소드에서 동기화 Lock을 설정
@Getter(lazy=true) : 동기화를 이용하여 최초 1회만 getter가 호출
@Log : 종류별 로그를 사용할 수 있도록 한다. (@Log, @Slf4j, @CommonLog 등)
Configuration system : lombok을 사용하기 위해서 최초 설정
Experimental features : 준비중인 추가 기능
Lombok site : https://projectlombok.org/features/index.html
Lombok tutorial : http://jnb.ociweb.com/jnb/jnbJan2010.html