개발/부트캠프

본캠프 : Spring 기초_특강2_@AllArgsConstructor & @RequiredArgsConstructor

EJ EJ 2025. 1. 31. 21:04

@AllArgsConstructor와 @RequiredArgsConstructor는

Lombok 라이브러리에서 제공하는 어노테이션으로, 두 어노테이션 모두 클래스에 생성자를 자동으로 생성해주는 역할을 합니다. 하지만 생성되는 생성자의 범위와 포함되는 필드가 다릅니다.

 

@AllArgsConstructor

  • 기능: 클래스의 모든 필드를 포함하는 생성자를 자동으로 생성합니다.
  • 사용 사례: 클래스의 모든 필드를 초기화해야 하는 생성자가 필요한 경우.
  • 특징:
    • final 필드, @NonNull이 적용된 필드, 그리고 일반 필드(초기값이 없는 필드)를 모두 포함합니다.
    • 모든 필드를 초기화하는 생성자가 생성됩니다.

 

@RequiredArgsConstructor

  • 기능: final 필드와 @NonNull이 적용된 필드만 포함하는 생성자를 생성합니다.
  • 사용 사례: 꼭 초기화가 필요한 필드만 포함된 생성자가 필요한 경우.
  • 특징:
    • final 필드와 @NonNull이 적용된 필드만 초기화 대상입니다.
    • 일반 필드는 포함되지 않습니다.

 

▶ 차이점 요약

어노테이션  포함되는 필드  사용 사례
@AllArgsConstructor 모든 필드 (final, @NonNull, 일반 필드) 모든 필드를 초기화하는 생성자가 필요한 경우
@RequiredArgsConstructor 필수 필드 (final, @NonNull) 필수 필드만 초기화하는 생성자가 필요한 경우