Lombok 설치하기 (Mac + Eclipse)

Mac에서 이클립스를 이용하여 Lombok 설치하고 사용하기. 


Lombok은 getter/setter/constructor/toString/hash/equals등을 자동으로 생성해주는 멋진 툴이다.
그 사용법을 알아보자.

1. Lombok 다운로드 하기. 
https://projectlombok.org/download.html

lombok.jar 1.16.6을 다운받자.

2. Lombok 실행하여  Eclipse와 연동하기. 
준비사항 :
- JDK 최신버젼
- Eclipse 최신버젼

다운 받은 lombok.jar 파일 위치에서 다음과 같이 실행하자.
이전 준비 사항들이 이미 Mac에 설치 되어 있다는 가정하에 진행하겠다.
java -jar lombok.jar
그러면 다음 화면이 나온다.

위 내용은 라는 의미이다.
IDE를 찾을 수 없다.
만약 IDE가 컴퓨터에 이미 설치되어 있다면 'Specify Location...' 버튼을 눌러서 수동으로 IDE가 설치된 경로를 지정해달라. 
"확인"을 누르고
"Specify location..." 버튼을 클릭하자.


이클립스 경로에서 STS.ini를 찾아서 "Open"을 클릭하자.

"Install / Update" 를 클릭하여 Eclipse에 설치하자.
-startup
../Eclipse/plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar
--launcher.library
../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.300.v20150602-1417
-product
org.springsource.sts.ide
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.7
-Xms2048m
-XX:MaxPermSize=512m
-Xverify:none
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Xdock:icon=../Resources/sts.icns
-Xmx2048m
-javaagent:../Eclipse/lombok.jar
마지막에 lombok.jar가 설치 된 것을 확인할 수 있다. 


maven Depencency 추가하기 : 
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.8</version><scope>provided</scope></dependency>


이제 준비가 되었다. 이제는 이클립스를 다시 실행하여 직접 테스트를 해보면 된다.

3. Lombok 이용하여 boilerplate code 제거하기. 

Lombok features

val
final local 변수를 써야하는 번거로운 작업을 없애준다.

@NonNull
NullPointerException을 발생하지 않도록 미리 체크한다.

@Cleanup
자동 리소스 관리를 수행한다.: 안전하게 close()메소드를 호출한다.

@Getter / @Setter
getter/setter메소드를 자동으로 생성한다.

@ToString
lombok가 자동으로 toString 메소드를 생성해준다. 모든 필드들을 toString으로 노출시켜준다.

@EqualsAndHashCode
equals와 hashCode메소드를 자동으로 생성해준다. 객체의 필드들을 이용하여 구현하게 된다.

@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor
생성자를 만들어 준다.
@NoArgsConstructor : 파라미터 없는 생성자를 만들어준다.
@RequiredArgsConstructor : not null필드나 final필드들을 아규먼트로 하는 생성자를 만든다.
@AllArgsConstructor : 모든 파라미터를 이용하여 생성자를 만든다.

@Data
@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 를 모두 한번에 적용한 어노테이션이다.

@Value
불변 클래스들을 매우 쉽게 만든다.

@Builder
객체 생성을 빌더로 만들어준다.

@SneakyThrows
checked exceptions를 던진다. 이전에 thrown을 지정하지 않은 경우에 설정된다.

@Synchronized
synchronized가 올바르게 수행되도록 한다. locks를 볼 수 없을 것이다.

@Getter(lazy=true)
Getter을 생성한다. lazy하게.. 느린것이 좋은 것이다.

@Log
Logs를 사용할 수 있도록 해준다.

더 상세한 가이드를 보고자 한다면 다음 경로에서 확인해보자.
http://jnb.ociweb.com/jnb/jnbJan2010.html

4. Sample 예제 

import lombok.Data;

public @Data class Hello {
    int id;
    String name;
}

@Data를 이용하여 한번에 적용해 보았다. 

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@NoArgsConstructor
@ToString
public class Person {

@Getter
long personId;

@Getter @Setter
String name;

public static void main(String[] args) {
System.out.println("TEST : " + new Person());
}
}
@NoArgsConstructor을 이용해서 파라미터 없는 기본 생성자를 생성 시켜 보았다.
@ToString 을 이용하면 상기 모든 필드에 대해서 스트링으로 노출할 것이다.

toString을 출력해보면 다음과 같다.

TEST : Person(personId=0, name=null)



Share this

Related Posts

Previous
Next Post »