Spring Lombok 사용법

Ashley·2023년 12월 13일

출처 : https://gong-story.tistory.com/15

기본적으로 알고 있어야할 Lombok 라이브러리

  • @Getter / Setter
  • @AllArgsContructor
  • @NoArgsContructor
  • @RequiredArgsContructor
  • @Data
  • @Slf4j

- @Getter / Setter
정보 가져오는 것
정보 수정하는 것

- @AllArgsContructor
모든 생성자를 파라미터를 받아야하는 생성자를 만든다.
생성자 주입

@NoArgsConstructor
매개변수(파라미터)가 없는 기본 생성자를 생성, 기본생성자 만들어줌

@NoArgsConstructor(access = AccessLevel.PROTECTED)
기본 생성자는 @Entity 에서 만들어주는 데도 어노테이션을 사용하는 이유는
@NoArgsConstructor(access = AccessLevel.PROTECTED) 와 같이
접근 제한을 하여 기본 생성자의 무분별한 생성을 막아서 의도하지 않은
엔티티를 만드는 것을 막을 수 있기 때문

생성자 제한을 걸지 않을 경우

위와 같이 파라미터가 없는 기본 생성자를 생성하게 되면 나머지 멤버변수들의 값들을 전달하기 위해 setter를 사용할 수 밖에 없고, setter를 이요하여 id와 nickname을 지정했지만 nickname을 set하지 않아 nickname을 가지지 않는 불완전한 객체가 만들어진다.

생성자 제한을 걸게될 경우

위와 같은 상황이 발생하더라도 임시로라도 userid를 닉네임으로 사용하게끔하여 불완전한 객체의 가능성을 차단한다.

출처 : https://oh-sh-2134.tistory.com/107

@RequiredArgsContructor
@AllArgsContructor / @NoArgsContructor 어노테이션과 다르게 final 키워드와 @NonNull 이 붙은 필드에 대한 생성자를 생성하는 역할 뿐만 아니라 의존성 주입(DI) 에도 영향을 미치게 됩니다.

@Data
: @Getter, @Setter, @ToString, @EqualsAndHashCode,
@RequiredArgsConstructor 모두를 자동으로 적용한다.

위에서 설명한 어노테이션 뿐만 아니라 다른 어노테이션도 포함하는 끝판왕
즉, Getter, Setter, AllArgsConstructor, NoArgsConstructor, RequiredArgsConstructor, toString, EqualsAndHashCode 어노테이션을 모두 합한 결정체입니다

출처 : https://ittrue.tistory.com/239

@Slf4j
Lombok 의 다른 기능들과 마찬가지로 개발자로 하여금 @Slf4j를 사용하기 위해 작성해야 하는 코드(Boilerplate code)를 생략할 수 있게끔 해준다.

@Slf4j 를 선언하는 경우, Lombok 으로 하여금 logger field를 작성하게 한다는 내용이 포함되어 있다.

출처 : https://inseok9068.github.io/java/java-lombok-slf4j/

profile
처음은 힘들지만, 하면 할 수 있어오!

0개의 댓글