본문 바로가기
JPA

@NoArgsConstructor

by 지민재 2023. 11. 21.
반응형
SMALL

@NoArgsConstructor


@NoArgsConstructor(access = AccessLevel.PROTECTED)Lombok 프로젝트에서 제공하는 애노테이션 중 하나로, 주로 클래스에 붙여서 기본 생성자를 생성하는 역할을 합니다. 이 애노테이션은 기본 생성자를 생성하되, 접근 제어자를 protected로 설정하는 기능을 수행합니다.

여기서 각 구성 요소에 대한 설명은 다음과 같습니다:

  • @NoArgsConstructor: Lombok이 해당 클래스에 대해 자동으로 생성자를 만들도록 지시하는 애노테이션입니다.
  • access = AccessLevel.PROTECTED: 생성된 기본 생성자의 접근 제어자를 protected로 지정합니다. 즉, 이 생성자는 같은 패키지 내에서 혹은 해당 클래스를 상속받은 하위 클래스에서만 호출 가능합니다.

이렇게 하면 클래스 외부에서는 기본 생성자를 직접 호출할 수 없고, 패키지 내부 혹은 하위 클래스에서만 호출할 수 있게 됩니다. 이는 클래스의 인스턴스 생성을 어느 정도 제한하고, 보다 안전한 객체 생성을 유도하는 데 사용될 수 있습니다.

import lombok.NoArgsConstructor;
import lombok.AccessLevel;

@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class MyClass {
    // 클래스의 나머지 부분
}

이렇게 하면 MyClass는 외부에서는 기본 생성자를 호출할 수 없지만, 패키지 내부에서는 사용 가능하며 하위 클래스에서도 사용할 수 있습니다.

'JPA' 카테고리의 다른 글

@Builder  (1) 2024.01.04
@GeneratedValue  (2) 2023.11.21
JPA - 엔티티 패밍  (0) 2023.04.28
JPA - 영속성 컨텍스트  (0) 2023.04.26
JPA - 기초  (0) 2023.04.26

댓글