@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 |
댓글