@AllArgsConstructor와 @RequiredArgsConstructor는 롬복 라이브러리에서 제공되는 애너테이션으로 필드에 대한 생자를 자동으로 생성해주는 역할을 한다.
@RequiredArgsConstructor는 필요에 의한 생성자를 만들어주는데 그럼 @AllArgsConstructor를 쓸 필요가 있나?? 라는 생각이 들어 찾아보니 두 애너테이션에 차이점이 있었다.
@AllArgsConstructor는 '모든' 필드에 대한 생성자를 자동으로 생성해준다. 즉, 클래스의 모든 필드를 매개변수로 받는 생성자가 자동으로 생성된다.
@RequiredArgsConstructor는 초기화 되어 있지 않은 'final' 필드나 @NonNull 애너테이션이 붙은 필드에 대한 생성자를 자동으로 생성해준다. 즉, 해당 필드들만 매개변수로 받는 생성자가 자동으로 생성된다.
따라서, 이런 특성을 잘 고려하여 클래스에서 필요한 생성자를 잘 고려해서 애너테이션을 사용해야한다.
'개발 일지 > Spring' 카테고리의 다른 글
[Spring MVC] Spring Security (0) | 2023.03.17 |
---|---|
[Spring Security] 인증 처리 흐름 (0) | 2023.03.16 |
[Spring Data JPA] No default constructor for entity (0) | 2023.03.13 |
[Spring Data JPA] Auditing 기능 (0) | 2023.03.13 |
[Spring] 트랜잭션 격리 레벨 (0) | 2023.03.02 |