[Spring] Lombok 사용방법 및 예시

daily_study_78·2021년 10월 16일
0

Spring

목록 보기
4/6

1. Lombok 설명

  • Java기반에서 기계적으로 작성ㅇ하는 VO, DTO, Entity 관련 작업을 보다 쉽게 하게 해주는 도구
  • Getter, Setter, ToStrgin, hashCode 관련 메소드 작업관련 클래스코드를 깔끔하게 작성 가능
  • Spring 플젝에서 JPA 환경과 함께 일관화되고 가독성이 좋은 어플리케이션 작성 가능

2. 예시

public class UserEntity {

    private String userId;
    private String userPwd;
    private String userName;
    private int userAge;

    public MemberEntity(String userId, String userPwd, String userName, int userAge) {
        this.userId = userId;
        this.userPwd = userPwd;
        this.userName = userName;
        this.userAge = userAge;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserPwd() {
        return userPwd;
    }

    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public int getUserAge() {
        return userAge;
    }

    public void setUserAge(int userAge) {
        this.userAge = userAge;
    }

}
  • 위의 예시를 Lombok을 사용하게 되면?
@Getter
@Setter
public class UserEntity {

    private String userId;
    private String userPwd;
    private String userName;
    private int userAge;
}

3. 자주 사용하는 어노테이션

1) @Getter, @Setter

  • 자동적으로 getter setter 만들어줌
  • Entity에 컬럼이 추가되었을 때 유용

2) @NoArgsConstructor

  • 파라미터가 없는 기본 생성자를 생성

3) @AllArgsConstructor

  • 모든 필드 값을 파라미터로 받는 생성자 생성

4) @Builder

  • 모델 객체를 생성할 때 Builder를 자동으로 추가해 주는 어노테이션 -> Builder Pattern 적용 가능
  • 실수 방지 가능
@Getter
@Setter
@Builder
public class UserEntity {

    private String userId;
    private String userPwd;
    private String userName;
    private int userAge;
}

[@Builder 존재 안하는 경우]

public class UserNotBuilder {

  public void builderTest() {
    User user = new User(userId, userPwd, userName, userAge)  // 순서대로 작성해야만 함
    System.out.println(user);
  }
}

[@Builder 존재 하는 경우]

public class UserBuilder {

  public void builderTest() {
    User user = User.builder()  // 순서대로 작성안해도 괜찮음
                  .userId("test")
                  .userPwd("test")
                  .userName("test")
                  .userAge(20)
                  .build();
    System.out.println(user);
  }
}

0개의 댓글