Lombok이란?

개발이야기 2018. 10. 30. 17:56

Lombok이란?

Lombok(롬복) 은 자바에서 @Getter, @Setter 같은 annotation 기반으로, 기존 DTO, VO, Domain Class 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등등을 자동으로 생성해 주는 라이브러리이다. 추가로 일반적인 Class에서 Log와 같은 명령어를 간단하게 사용 할 수 있도록 도와준다.





기능

@어노테이션설명세부기능
@Getter @SetterGetter, Setter 메소드 자동생성– AccessLevel : 해당 접근 제한자를 설정
– lazy : 동기화를 이용하여 최초 1회만 호출
@ToStringToString 메소드 자동생성– exclude : 출력하지 않을 필드명 입력 
– includeFieldNames : 필등명 생략 여부 설정
– callSuper : 상위 클래스 toString호출 여부 설정
@EqualsAndHashCodeequals, hashcode 메소드 자동생성-
@Data@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 자동생성-
@valfinal 키워드 대신 사용하는 변수 선언 class-
@NonNull해당 값이 Null 일경우 NullPointerException을 발생-
@Cleanup자동 리소스 관리 : close() 메소드를 귀찮음 없게 안전하게 호출-
@EqualsAndHashCodehascode 와 equals 메소드를 생성– of : 포함 할 필드, – exclude : 제외 할 필드
@NoArgsConstructor인자 없는 생성자 생성-
@RequriedArgsConstructor필수 인자만 있는 생성자 생성(다른 생성자가 없을 때에만 만들어짐)-
@AllArgsConstructor모든 인자를 가진 생성자 생성-
@Value불편 클래스를 쉽게 생성-
@BuilderBuilder API 처럼 사용 할 수 있도록 지원-
@SneakyThrowsException 발생시 체크된 Throable로 감싸서 전달-
@Synchronized메소드에서 동기화 Lock을 설정-
@Log종류별 로그를 사용할 수 있도록 한다.– 기본 변수명 : Log
(Config 파일 만들어서 명칭 변경 가능)
– 로그 종류 : @Log, @Slf4j, @CommonLog, XSlf4j, JBossLog 등

Ex) Code

@Data
@ToString(exclude = {"name", "address"}, includeFieldNames = false, callSuper = true)
@EqualsAndHashCode(of = {"name", "address"}, exclude = {"gender", "phone"})
public class LombokGsonSampleInfo {
private String id;
@Getter(AccessLevel.PRIVATE) @Setter(AccessLevel.PUBLIC)
private String name;
@NonNull
private String email; // 메소드의 인자가 null일 경우 Exception을 출력 한다
// (java.lang.NullPointerException)
private String address;
private String gender;
private Phone phone;
}


IntelliJ 설치방법

Maven > pom.xml > dependency 추가

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.16.16</version>
<scope>provided</scope>
</dependency>


plugins 에서 Lombok 플러그인을 설치한다.



Setting > Build, Execution, Deployment > Comipler > Annotation Processors > Enable annotation processing 체크해야 롬복이 정상적으로 동작한다. 

참고 : https://projectlombok.org/


블로그 이미지

클라인STR

,