출처 : [ 이 글은
코드로 배우는 스프링 웹 프로젝트
http://wonwoo.ml/index.php/post/1607
http://www.daleseo.com/lombok-popular-annotations
에서 참고하여 작성된 글입니다. ]
[ 코드로 배우는 스프링 웹 프로젝트 ]
이 책을 통해 Lombok에 대해서 알게되었다.
● Lombok을 이용하면 Java 개발 시 자주 사용하는 getter/setter, toString(), constructor 등을 자동으로 생성해 주므로 약간의 코드만으로도 필요한 클래스를 설계할 때 유용하다. Lombok은 라이브러리에서 제공하는 어노테이션으로 코드에 적용할 수 있다.
먼저 Lombok 라이브러리 설치 방법부터 알아보자.
Lombok 다운로드는 http://projectlombok.org/download 에서 jar 파일 형태로 다운 받을 수 있다.
2018년 10월 현재 Lombok버전은 1.18.2 버전을 다운로드 할 수 있다.
다운받은 파일을 실행 시키면..
Lombok 설치 프로그램이 실행된다. default로 eclipse 경로가 잡혀있는데 STS에 설치하고 싶은 경우 Specify location... 을 클릭해서 STS가 설치되어있는 경로를 잡아주면 된다.
STS경로를 잡아주고 Install / Update 클릭 → Quit Installer 클릭
만일 Lombock을 설치한 후 바탕화면의 이클립스(STS) 바로가기가 정상적으로 동작하지 않는다면..
1. 이클립스가 설치된 경로에서 제대로 실행되는지 확인
2. 바탕화면의 바로가기 삭제 후 다시 생성
위의 과정을 수행한다면 문제없이 실행될 것이다.
그럼 Lombok 어노테이션에 대해서 하나씩 알아보자.
@Getter / @Setter
이름 그대로 getter와 setter를 생성해준다. 가장 많이 사용되는 어노테이션 중 하나이다.
1 2 | @Getter @Setter private String name; | cs |
이처럼 필드에 어노테이션을 붙여주면, getter와 setter를 자동으로 생성해준다. 속성으로 value, onMethod 속성이 존재한다.
value의 경우 AccessLevel(접근제어) 지정을 통해서 접근 레벨을 제한할 수 있다.(PUBLIC, PROTECTED, PACKAGE, PRIVATE)
→ @Getter(value = AccessLevel.PRIVATE), @Setter(value = AccessLevel,PUBLIC)
@XXXArgsConstructor
생성자를 생성해주는 어노테이션이다. 3가지 종류가 있는데..
1. @NoArgsConstructor : 디폴트 생성자(파라미터가 없는 생성자)를 생성해주는 어노테이션
2. @AllArgsConstructor : 모든 필드의 생성자(파라미터로 받는)를 생성해주는 어노테이션
3. @RequiredArgsConstructor : 필수 생성자를 생성해주는 어노테이션
@EqualsAndHashCode
@EqualsAndHashCode 어노테이션은 hashcode와 equals를 생성해주는 어노테이션이다.
공통 속성으로 exclude, of, callSuper, doNotUseGetters가 존재한다.
@ToString
@ToString 어노테이션은 toString() 메서드를 생성해주는 어노테이션이다.
@EqualsAndHashCode와 마찬가지로 공통 속성으로 exclude, of, callSuper, doNotUseGetters가 존재한다.
@EqualsAndHashCode / @ToString 공통 속성
▶ exclude : 제외시킬 변수명을 작성 → @EqualsAndHashCode(exclude={"field1", "field2"})
▶ of : 포함시킬 변수명을 작성 → @EqualsAndHashCode(of = )
▶ callSuper : 상위 클래스의 호출 여부를 묻는 속성 → @EqualsAndHashCode(callSuper = true)
▶ doNotUseGetters : getter 사용여부 확인(..?)
@Data
@Data는 @Getter, @Setter, @XXXArgsConstructor, @ToString, @EqualsAndHashCode 을 한꺼번에 설정해주는 어노테이션이다.
1 2 3 4 | @Data public class Test{ } | cs |
클래스 레벨에 @Data어노테이션을 붙여주면 모든 필드를 대상으로 접근자와 설정자가 자동으로 생성된다.
final로 지정됐거나, @NonMull로 명시된 필드에 대한 값을 받는 생성자 메소드 코드를 생성한다.
[ 실습하면서 글 작성중이므로 변경사항이 있을 때마다 수정하겠습니다. ]
'Web > Spring' 카테고리의 다른 글
[Spring] @Controller / @RequestMapping (2) | 2018.10.19 |
---|---|
[Spring] pom.xml에 추가할 라이브러리들.. (2) | 2018.10.19 |
[Spring] 프로젝트 생성 환경설정 맞추기 (0) | 2018.10.17 |
[Spring] @RunWith(SpringJUnit4ClassRunner.class) ..Error (0) | 2018.10.17 |
[Spring] Lombok : @Setter(onMethod_ = @Autowired) .. Error (2) | 2018.10.17 |