본문 바로가기

Server Oriented/Spring

스프링 Lombok Annotations, @Getter @Setter @ToString

Lombok(롬복) 의 Annotation 들은 모두 class 에 설정하고,

@Builder 의 경우 파라미터가 있는 생성자 메소드에도 설정 가능.

 

 

 

@Getter

@Setter

@ToString

 

 

 

@EqualsAndHashCode

- (of="...")

해당 Entity 하나를 기준으로 HashCode 메서드 추가

- (of={"...","...",...})

해당 Entity 여럿을 기준으로 HashCode  메서드 추가

 

 

 

@NoArgsConstructor

- 파라미터(인자) 없는 생성자  메서드 추가, 기본 생성자

 

@RequiredArgsConstructor

- @NonNull 또는 final 등을 설정한 Entity 정의된 순서 대로 파라미터로 구성된 생성자 메서드 추가

 

@AllArgsConstructor

- Entity 정의된 순서 대로 모두가 파라미터로 구성된 생성자 메서드 추가

 

 

 

@Data

- @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 등을 모두 @Data 하나로 대체

 

 

 

@Builder

- class 에 @Builder 설정시,  @AllArgsConstructor 를 적용하면서, static Builder 패턴인 ABuilder 클래스 자동 생성.

- 생성자 method 에 @Builder 설정시, 특정 생성자의 파라미터를 Entity 로 갖는 static Builder 패턴인 ABuilder 클래스 자동 생성. A 클래스의 엔터티들 중 몇 개만 사용하는 경우 적용.

 

 

 

@Slf4j (Simple Logging Facade for Java)

- private static final Logger log = LoggerFactory.getLogger(클래스.class); 자동생성.

 


* Lombok 설치

 

다운로드 해서 실행하면 자동 설치되기도 하는데,

build.gradle 파일의 dependencies 에 아래와 같이 롬복을 기술하고 빌드하면,

gradle 이 빌드하는 과정 중에 롬복 라이브러리를 (필요시) 다운로드 하고 작동.

 

dependencies {

  ...
  compileOnly 'org.projectlombok:lombok'
  annotationProcessor 'org.projectlombok:lombok'

  ...

}