반복되는 코드의 작성을 도와주는 라이브러리 Project Lombok

이경영·2022년 10월 12일
0

스프링부트2

목록 보기
11/19
post-custom-banner

Lombok이란

  • 반복되는 메소드를 Annotation을 사용하여 자동으로 작성해주는 라이브러리
  • 일반적으로 VO, DTO, MOdel, Entity등의 데이터클래스에서 자주 사용됨

대표적으로 많이 사용되는 Annotation
@Getter
@Setter
@NoArgConstructor
@AllArgConstructor
@Data
@ToString

  • 라이브러리 의존성 설정
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

대표적인 어노테이션

@Getter /@Setter

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

@NoArgsConstructor /@AllArgsConstructor/@RequiredArgsConstructor

@NoArgsConstructor : 파라미터가 없는 생성자를 생성
@AllArgsConstructor : 모든 필트값을 파라미터로 갖는 생성자를 생성
@RequiredArgsConstructor : 필드값 중 final이나 @Notnull인 값을 갖는 생성자를

@ToString

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

@EqualsAndHashCode

equals, hashCode 메소드를 자동으로 생성

  • equals : 두 객체의 내용이 같은지 동등성을 비교하는 연산자
  • hashCOde: 두 객체가 같은 객체인지 동일성을 비교하는 연산자
    => callSuper 속성을 통해 메소드 생성시 부모 클래스의 필드까지 고려할지 여부 설정가능
    • callSuper = true -> 부모 클래스 필드 값들도 동일한지 체크

@Data

  • 해당 어노테이션을 사용하면, 앞서 나온 기능들을 한번에 추가해줌
    @Getter
    @Setter
    @RequiredArgsConstructor
    @ToString
    EqualsAndHashCode

-- 실습

package com.example.testproject.dto;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;


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

}
profile
꾸준히
post-custom-banner

0개의 댓글