생성자 관련 어노테이션들의 차이점에 대해서 알아보자.
@NoArgsConstructor
- NoArguments Constructor = 파라미터가 없는 기본 생성자 생성 ex) Member member = new Member()
- final 붙은 field 있으면 compile error 발생
- @NoArgsConstructor(force=true) 해주면 모든 final filed 0/false/ null 초기화 처리 가능
- 주로 @Data나 어노테이션을 생성하는 생성자와 함께 사용
@RequiredArgsConstructor
@AllArgsConstructor
- 클래스 내부에 선언된 모든 filed에 대한 생성자 생성
- 클래스에 선언된 filed 순서로 파라미터 생성