ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Lombok] STS에 lombok 적용하기
    Programming Language/Spring 2018. 11. 19. 13:54
    반응형

    [Lombok] STS에 lombok 적용하기




    ※ lombok 


    자바 개발자들에게 Getter/Setter 메소드를 생성하거나 toString() 혹은 생성자 함수를 생성하는 등의 작업은 번거롭고 귀찮은 작업이다. 


    다만, 이러한 작업이 너무나 반복적으로 필요하기 때문에 개발의 생산성을 높이고 싶다면 Lombok 을 이용해 단순 반복 작업을 자동화함으로써 개발 시간을 단축할 수 있다. 



    | Lombok 이란


    Lombok은 자바에서 @Getter, @Setter 같은 annotation 기반으로 기존 DTO, VO, Domain Class 등을 작성할 때, 멤버 변수에 대한 Getter/Setter Method, Equals(), hashCode(), ToString()과 멤버 변수에 값을 설정하는 생성자 등등을 자동으로 생성해주는 라이브러리이다. 



     | 기존의 Lombok 을 사용하지 않은 코드



     | Lombok 을 사용한 코드



    | Lombok 라이브러리 설치


    Lombok 라이브러리를 이용해서 코드를 개발하기 위해서는 사전에 다음과 같은 설정이 필요하다.


    - Eclipse 자체에 Lombok 라이브러리 설정


    - Lombok 이 필요한 프로젝트에 라이브러리 추가



    | Lombok 을 STS에 적용하기


    1. Lombok 사이트 (https://projectlombok.org/)에서 lombok.jar 파일을 다운로드 받는다. 설치를 위해 현재 실행 중인 Eclipse (STS)는 종료한다.



    2. 다운로드한 폴더에서 java -jar lombok.jar 를 이용해서 파일을 실행한다.



    3. 프로젝트의 pom.xml 에 lombok 라이브러리를 추가한다. 



    4. 간단한 SampleVO 클래스를 만든다.



    5. Controller 에 메소드를 추가한다.



    6. 스프링 부트를 실행한 후 브라우저에서 결과를 확인한다.




      | Lombok 의 어노테이션 



    @NonNull : Null 값이 될 수 없다는 것을 명시

    @Cleanup : 자동으로 close() 메소드를 호출

    @Getter/Setter : 코드가 컴파일될 때 속성들에 대해서 Getter/Setter 메소드들을 생성

    @ToString : toString() 메소드를 생성


    @EqualsAndHashCode : 해당 객체의 equals() 와 hashCode() 메소드를 생성

    @NoArgsConstructor/@RequiredArgsConstructor/@AllArgsConstructor : 파라미터를 받지 않는 생성자를 만들어주거나(@NoArgsConstructor), 지정된 속성들에 대해서만 생성자를 만들거나(@RequiredArgsConstructor), 모든 속성들에 대해서 생성자를 만든다(@AllArgsConstructor)

    @Data : @ToString, @EqualsAndHashCode, @Getter(모든 속성), @Setter(final 이 아닌 속성), @RequiredArgsConstructor를 합쳐둔 어느테이션


    @Value : 불변 클래스를 생성

    @Log : 자동으로 생기는 log 라는 변수를 이용해서 로그를 찍을 수 있음

    @Builder : 빌더 패턴을 사용할 수 있도록 코드를 생성. new AA().setA().setB().setC() 와 같이 체이닝을 할 수 있는 코드를 생성

    @SneakyThrows : 예외 발생 시 Throwable 타입으로 반환


    @Synchronized : 메소드에서 동기화를 설정

    @Getter(lazy=true) : 동기화를 이용해서 최초 한 번만 getter를 호출

    반응형
Designed by Tistory.