롬복이란?
자바에서 Model(DTO, VO, Domain) Object 를 만들때, 멤버필드(프로퍼티)에 대한 Getter/Setter, ToString() 등과 멤버필드에 주입하는 생성자(Argument가 없는 생성자, 있는 생성자)를 만드는 코드 등 불필요하게 반복적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리
롬복의 특징
- 위의 설명과 같이 어노테이션을 통해 필요 함수들을 자동으로 생성
- 생성된 메서드는 호출이 가능하나 눈에 보이지 않는다
- 기존 IDE에서 자동으로 생성해주는 기능은 있었으나 변수명 변경 시 관련 함수도 모두 변경해야하는데 이런 수고가 없어짐
롬복사용의 주의점
- 롬복사용 시 자동생성되는 toString() 같은 메서드 무한 재귀 함수 호출로 인해 StackOverflowError 발생 가능
롬복 라이브러리 설치 (Intellij)
1) file 의 Settings 를 실행
2) 검색에 plugin를 검색한 후 plugin 검색에 lombok를 검색하여 설치 후 annotion을 검색해 Annotation Processors 의 Enable annotation processing 을 체크
3) 마지막으로 프로젝트의 build.gradle 에 롬복 dependencies 를 설정
- compile 'org.projectlombok:lombok:1.18.10'
- annotationProcessor 'org.projectlombok:lombok:1.18.10'
롬복 사용방법
package com.example.study.model.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.time.LocalDateTime;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private Long id;
private String account;
private String email;
private String phoneNumber;
private LocalDateTime createdAt;
private String createdBy;
private LocalDateTime updatedAt;
private String updatedBy;
}
- @Data : 각 변수들에 해당하는 getter/setter 를 자동생성
- @AllArgsConstructor : 모든 Argument를 받는 생성자를 자동생성
- @NoArgsConstructor : Argument가 하나도 없는 생성자를 자동생성
롬복 사용 후
- 아래 사진처럼 코드에는 메서드가 없지만 자동생성된 것을 볼 수 있음 ( 사진은 나중에 캡쳐 한 것으로 위 코드랑 조금 상이 )
'Programming > Spring' 카테고리의 다른 글
[Springboot] MySQL Replication (0) | 2021.07.11 |
---|---|
[Springboot] Pageable (0) | 2021.07.11 |
[Spring] #4. MAVEN 설치 및 Eclipse 연동 (0) | 2021.01.14 |
[Spring] #3. Eclipse SVN 설치 (0) | 2021.01.14 |
[Spring] #2. Spring Tool Suite 설치 및 프로젝트 생성 (0) | 2021.01.14 |