Java 필수 라이브러리 Lombok 사용, 적용방법
Lombok 라이브러리는 VO(Value Object) 나 DTO(Data Transfer Object) 생성 시
혁신적으로 코드를 줄여주는 라이브러리 입니다.
얼마나 혁신적으로 코드를 줄이는지 한번 보겠습니다.
public class lombokTestVO {
private String a;
private int b;
private boolean c;
.
.
.
public String getA() {
return a;
}
public void setA(String a){
this.a = a;
}
public int getB(){
return b;
}
public void setB(int b){
this.b = b;
}
public boolean getC(){
return c;
}
public void setC(boolean c){
this.c = c;
}
.
.
.
}
일반적인 VO class 입니다. 물론 이를 하드코딩 하시는 분은 없을꺼에요.
[Alt] + [Shift] + [S] -> [R] 로 자동 생성을 하시죠.
하지만 변수가 많아질 수록 코드 또한 엄청나게 길어집니다.
그럼 Lombok을 적용하면 어떻게 될까요?
import lombok.Data;
@Data
public class lombokTestVO {
private String a;
private int b;
pirvate boolean c;
}
끝.
왜 쓰는지는 됐고. 사용 방법을 알아보겠습니다.
Lombok 사이트로 이동합니다.
Link : https://projectlombok.org/
페이지로 이동하시면 상단에 'Download' 를 클릭합니다. 그리고 다운로드.
다운받은 lombok.jar 파일을 실행하시면 파일이 실행됩니다.
자동으로 IDE를 검색하지만 자동검색이 되지 않으시면 Specify location을 선택하셔서 원하는 IDE를 선택하세요.
선택하신 후 Install / Update 클릭 (저의 경우 eclipse)
그냥 뭐 바로 됩니다.
설치가 완료되면 이클립스 설치경로에 eclipse.ini를 열어 아래의 내용이 추가되었는지 확인합니다.
-javaagent:이클립스설치경로\lombok.jar
이제, IDE로 이동하셔서 의존성 주입의 해줍니다.
[Gradle]
dependencies {
/*Lombok*/
compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
}
[Maven]
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
<scope>provided</scope>
</dependency>
Maven의 경우 dependency를 추가하셨는데 어노테이션이 추가가 안될 경우 maven-compiler-plugin 쪽을
아래와 같이 수정해주세요.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<annotationProcessors>
<annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
</annotationProcessors>
</configuration>
</plugin>
그럼 이제 적용해보겠습니다. 기존에 사용하던 getter/setter 를 제거하고 @Data 어노테이션을 추가합니다.
import lombok.Data;
@Data
public class LombokTestVO {
private String a;
private int b;
private boolean c;
}
보이는 코드는 줄었지만 Outline 탭을 확인해보시면 getter/setter 및 toString, hashCode 등 메소드가 생성된 것을 보실 수 있습니다.!
@Data 어노테이션 말고도 다른 어노테이션도 존재합니다.
@NonNull - 파라미터 null 체크
@Cleanup - 리소스 자동 정리
@Getter and Setter - getter/setter 자동 생성
@ToString - toString 오버라이드 메소드 자동생성
@EqualsAndHashCode - equals, hashCode 메소드 자동 생성 등등
@Slf4j - Logger를 선언하지 않고 사용
자세한 사항은 아래의 Link를 참고하세요.
Link : Lombok features
'Programing > JAVA' 카테고리의 다른 글
Java Thread 사용방법, Thread에 대해 알아보자 자바 스레드 (0) | 2019.10.21 |
---|---|
SuppressWarnings 어노테이션에 대해 알아보자 (0) | 2019.10.18 |
Java Message Passing 의 개념. 메시지 패싱이란? (0) | 2019.10.14 |
Java Redis, Jedis 데이터 조회, 입력 list, set, map, key value (0) | 2019.09.27 |
Java 클래스 변수명과 값 출력하기 how to get name and value of class (0) | 2019.09.02 |
댓글