본문 바로가기
Programming Language/Spring

[Lombok] STS에 lombok 적용하기

by happy coding! 2018. 11. 19.
반응형

[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를 호출

반응형

댓글