본문 바로가기
Spring

Lombok 정리 노트

by SuldenLion 2022. 11. 1.
반응형

Lombok 이란?

반복되는 메소드를 Annotation을 사용하여 자동으로 작성해주는 라이브러리. 일반적으로 VO, DTO, Model, Entity 등의 데이터 클래스에서 주로 사용됨. 대표적으로 많이 사용되는 annotation => @Getter, @Setter, @NoArgConstructor, @AllArgConstructor, @Data, @ToString

 

Lombok 사용법 :

라이브러리 dependency 설정

<dependencies>
...
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    <dependency>
...
<dependencies>

Lombok의 대표적인 어노테이션

@Getter, @Setter

- 해당 클래스에 선언되어 있는 필드를 기반으로 'getField', 'setField'와 같은 식으로 자동으로 메소드를 생성함.

@Getter
@Setter
public class MemberDTO {
    private String name;
    private String email;
    private String organization;
}

			↓

public String getName() {
	return name;
}

public void setName(String name) {
	this.name = name;
}

public String getEmail() {
	return email;
}

public void setEmail(String email) {
	this.email = email;
}

public String getOrganization() {
	return organization;
}

public void setOrganization(String organization) {
	this.organization = organization;
}

@NoArgsConstructor 

- 파라미터가 없는 생성자를 생성

@AllArgsConstructor

- 모든 필드값을 파라미터로 갖는 생성자를 생성

@RequiredArgsConstructor

- 필드값 중 final이나 @NotNull인 값을 갖는 생성자를 생성

@NoArgsConstructor 
@AllArgsConstructor
@RequiredArgsConstructor
public class MemberDTO {
    private String name;
    private String email;
    private String organization;
}

@ToString

- toString 메소드를 자동으로 생성해주는 기능. @ToString 어노테이션에 exclude 속성을 사용하여 특정 필드를 toString에서 제외시킬 수 있음.

@ToString
public class MemberDTO {
    private String name;
    private String email;
    private String organization;
}

@ToString(exclude = "email")
public class MemberDTO {
    private String name;
    private String email;
    private String organization;
}

@Override
public String toString() {
	return "MemberDTO{" + "\" +
    	"name='" + name + "\'" +
        ", email='" + email + "\'" +
        ", organization='" + organization + "\'" +
        "}";
}

@EqualsAndHashCode

- equals(두 객체의 내용이 같은지 equality를 비교하는 연산자), hashCode(두 객체가 같은 객체인지 identity를 비교하는 연산자) 메소드를 자동으로 생성. 

callSuper 속성을 통해 메소드 생성시 부모 클래스의 필드까지 고려할지 여부 설정 가능. callSuper = true -> 부모 클래스 필드 값들도 동일한지 체크

 

@Data

- 해당 기능을 사용하면 위의 모든 기능(@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode)들을 한번에 추가해줌.

반응형

'Spring' 카테고리의 다른 글

ORM, JPA, Spring Data JPA 노트  (0) 2022.11.03
DTO, DAO, Repository, Entity 노트  (0) 2022.11.02
POST, PUT, DELETE API + Swagger 라이브러리 노트  (0) 2022.10.31
Get API 만드는 방법 노트  (0) 2022.10.30
MVC Pattern 노트  (0) 2022.10.29

댓글