Lombok

박상윤·2023년 8월 10일
0

Lombok의 기능

  • @Setter, @Getter : Java Bean 규약에 있는 setter, getter를 자동 생성
  • @ToString : Object에 기본 구현된 ToString 대신 객체의 데이터를 보여주는 ToString을 자동 생성
  • @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor : 객체 생성자를 자동으로 생성(final이 붙거나 @NotNull 이 붙은 필드의 생성자를 자동 생성해주는 롬복 어노테이션)
  • @Data : Getter, Setter, ToString, Equals, hashCode 등 다양한 기능을 모두 제공
  • @Builder : 빌더 패턴을 자동 생성하여 제공
  • @Slf4j : 해당 클래스의 logger를 자동 생성
  • @UtilityClass : static method만 제공하는 유틸리티 성격의 클래스들의 생성자를 private으로 만들어서 객체 생성을 할 수 있도록 함

Lombok

사용전

package com.example.account;

import java.time.LocalDateTime;

public class AccountDto {
    private String accountNumber;
    private String nickname;
    private LocalDateTime registeredAt;

    public String getAccountNumber() {
        return accountNumber;
    }

    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public LocalDateTime getRegisteredAt() {
        return registeredAt;
    }

    public void setRegisteredAt(LocalDateTime registeredAt) {
        this.registeredAt = registeredAt;
    }
}

@Getter, @Setter 사용후

package com.example.account;

import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Getter
@Setter
public class AccountDto {
    private String accountNumber;
    private String nickname;
    private LocalDateTime registeredAt;
}

@AllArgsConstructor 사용
생성자를 따로 선언해주지 않아도 된다.

package com.example.account;

import lombok.*;

import java.time.LocalDateTime;

@Getter
@Setter
@ToString
@AllArgsConstructor
public class AccountDto {
    private String accountNumber;
    private String nickname;
    private LocalDateTime registeredAt;
}

Test

package com.example.account;

import org.junit.jupiter.api.Test;

import java.time.LocalDateTime;

class AccountDtoTest {
    @Test
    public void accountDto() throws Exception {
        //given

        //when

        //then

        AccountDto accountDto = new AccountDto(
                "accountNumber",
                "summer",
                LocalDateTime.now()
        );
        
        System.out.println(accountDto.getAccountNumber());
    }
}

@UtiltyClass

package com.example.account;

import lombok.experimental.UtilityClass;

@UtilityClass
public class NumberUtil {
    
    public static Integer sum(Integer a, Integer b){
        return a + b;
    }
    
    public static Integer minus(Integer a, Integer b){
        return a - b;
    }
}

0개의 댓글