[Spring] lombok( 롬복의 특징, annotations)

이혜지·2020년 10월 13일
1

Spring

목록 보기
5/15
post-thumbnail

[참조]https://projectlombok.org/

1. lombok을 쓰는 이유


모델 Class(VO, DTO, Entity) 를 만들때, 생성자, 접근자, 설정자, toString() 등 매번 만들어야한다. lombok을 사용하면 @Getter, @Setter 같은 어노테이션만 붙이면 자동으로 해주니 편하고 좋음

기존 방식의 문제점

  1. 멤버변수를 제어하기 위해 모델 객체마다 반복적으로 메소드들을 생성해야 한다.
  2. IDE에서 generate를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야한다.

lombok의 특징

  1. 생성자, 접근자, 설정자, toString() 자동생성 라이브러리이므로 위와 같은 번거로움이 없다.
  2. 이외에도 다양한 기능들이 추가로 있다.

2. gradle 에서 사용하기


build.gradle 에 추가하기

repositories {
	mavenCentral()
}

dependencies {
	compileOnly 'org.projectlombok:lombok:1.18.14'
	annotationProcessor 'org.projectlombok:lombok:1.18.14'
	
	testCompileOnly 'org.projectlombok:lombok:1.18.14'
	testAnnotationProcessor 'org.projectlombok:lombok:1.18.14'
}

3. 주로 사용하는 Annotation


3-1. 접근자와 생성자 @Getter, @Setter

접근자와 설정자를 자동 생성해준다. 멤버변수 위에 선언해주면 된다. 클래스 위에 선언하면 전체 적용

3-2. 생성자

클래스 위에 쓴다.

  • @AllArgsConstructor : 모든 변수로 생성자 생성
  • @RequiredArgsConstructor : final 키워드나 @NonNull 이 된 멤버변수로만 생성자 생성
  • @NoArgsConstructor : 기본 생성자 생성

3-3. ToString()

@ToString을 사용한다. @ToString(exclude = "password")처럼 특정 필드를 제외시킬 수도 있다.

3-4. @EqualsAndHashCode

객체 비교 등의 용도로 사용되는 equals(), hashCode() 메소드의 코드를 생성해준다.

3-5. @Data

위에있는 @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString 같은걸 한번에 해준다.

3-6. 기타

  • @NonNull : 변수 위에 사용한다. runtime 시에 Null Check 을 하여 NullPointerException이 발생하도록 한다
profile
공유 문화를 지향하는 개발자입니다.

0개의 댓글