Language/Java

lombok 사용해서 개발하기

아르비스 2016. 7. 19. 15:48

Java 개발시 매번 getter/setter/constuctor/equals/toString  등을 작성해 주는게 기계적인 노동에 해당한다. 

이런 기계적인 반복작업을 쉽게 해주는것이 lombok project 이다.


https://projectlombok.org/


간단하게 말해서 Annotation으로 간단하게 Setter, Getter 등의 기본작업을 대신해주는 Project임.


많이 사용하는 Annotation 은 다음과 같다.


@Getter / @Setter

  -Getter와 Setter 함수를 생성합니다.

  -접근제어 : AccessLevel 지정을 통해서 접근레벨을 제한할 수 있습니다. 

  (PUBLIC, PROTECTED, PACKAGE, PRIVATE)

  - @Getter(AccessLevel.PACKAGE), @Setter(AccessLevel.PRIVATE) getter/setter 관례에

    따라서 get 필드명, set 필드명 메소드가 생성됨


@EqualsAndHashCode

  - 코드에서 객체의 비교 등의 용도로 사용되는 equals(), hashCode() 메소드의 코드를 

    생성합니다.

  - 특정 필드를 제외할 수가 있습니다. 

    @EqualsAndHashCode(exclude={“field1”, “field2”})


@ToString

  - 객체의 내용을 문자열로 변환해주는 toString() 메소드를 대신할 수 있습니다.

  - 특정 변수를 제외할 수 있습니다. @ToString(exclude=”field1”)


@Log

  - 자동으로 logging을 위한 필드인 private static final Logger log 가 추가됩니다. 

    이후 로그를 출력하려는 곳에서 log.error(), log.warn(), log.debug(), log.info() 형태로

    사용하면 됩니다.


@Data

  - 모든 필드에 대한 getter, setter와 toString, equals, hashcode, final로 지정됐거나 

    @NonNull로 명시된 필드에 대한 값을 받는 생성자 메소드 코드를 생성합니다.

  - Data를 사용하면 모든 private 필드에 @Getter와 @Setter를 적용시키고, 클래스에 

    @ToString 과 @EqualsAndHashCode를 적용시킵니다.


@AllArgsConstructor

  - 모든 필드에 대한 값을 받는 생성자를 생성합니다.

  - 접근제어 : AccessLevel 지정을 통해서 접근레벨을 제한할 수 있습니다. 

    (PUBLIC, PROTECTED, PACKAGE, PRIVATE)


설정


Maven 

pom.xml에 dependency 추가

       <dependency>

            <groupId>org.projectlombok</groupId>

            <artifactId>lombok</artifactId>

            <version>1.16.10</version>

        </dependency>


[Eclipse에서 Lombok 설치]


1. Lombok Download 에서 lombok.jar 를 다운로드합니다.

2. java -jar lombok.jar 로 Installer를 실행합니다.

3. “Specify Location”을 클릭한 후 플러그인을 설치할 Eclipse의 바이너리를 선택합니다.

4. “Install / Update” 를 클릭합니다.


[IntelliJ에서 Lombok 사용법]

1. Lombok IntelliJ Plugin : https://code.google.com/p/lombok-intellij-plugin/ 를 다운로드해서 Settings(Preference) > Plugins > Install Plugins from Disk 에서 다운받은 ZIP 파일을 지정하면 설치가 됩니다.

2. 또는 Browse Repository에서 lombok plugin을 찾아서 설치합니다.

3. modules setting에서 compiler->annotation processor에서 enable annotation processing을 활성화합니다.