Skip to content

Lombok

https://kwonnam.pe.kr/wiki/java/lombok/pitfall

  • new JavaBean()으로도 생성할 수 있으나 lombok에서 제공하는 builder pattern으로도 작성할 수 있다.

  • 실무에서 Lombok 사용법

  • @Builder 어노테이션

  • 빌더란?
    디자인 패턴 중 하나인 빌더 패턴Builder pattern을 의미한다. 객체의 생성 방법과 표현 방법을 분리하는 것을 의미한다.

Member customer = Member.build()
  .name("홍길동")
    .age(30)
    .build();

위와 같은 스타일의 자바 코딩을 의미한다. (GoF-Design-Pattern과 Effective Java 책을 통해 자세한 내용을 접할 수 있다.)
왜 쓰는걸까? 가독성이 올라가고 유지보수가 편리해지기 때문이다.

  • 빌더 패턴
    Builder 클래스 안에 필수 인자를 받아서 생성해주는 Builder 생성자가 있고, 그 안에 Builder 클래스의 메서드로서 변수를 받아와 마지막에 build 메서드를 통해 객체를 생성해준다!
    NutritionFacts cocaCola = new NutritionFacts
    .Builder(240, 8)    // 필수값 입력
    .calories(100)
    .sodium(35)
    .carbohydrate(27)
    .build();
    

model에는 @AllArgsConstructor와 @RequiredArgsConstructor 사용하지 말기

@AllArgsConstructor로 만들어진 생성자의 파라미터는 필드의 순서대로 만들어짐. 필드를 수정하면 생성자의 파라미터도 롬복이 자동으로 바꿔버리므로 사용하지 말고 @Builer를 사용한다.

Builder 패턴으로 모델 생성시 AllArgsConstructor와 함께사용

AccessLevel.PRIVATE을 적용한다. @Builder는

@Builder
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class BlaBla() {
}

requiredArgsConstructor는 @Controller, @Service에서만 사용

의존성 주입 목적으로만 사용한다. 일반 모델에는 사용하지 않음.

Hello