프로젝트를 만들다보면, 필요에 따라 AllArgsConstructor, RequiredArgsConstructor, NoArgsConstructor를 보게된다.
이에 대해 머리를 한번 정리하고 가야할 필요가 있다고 생각이 들어서, 하나씩 정리를 해보려고 한다.
@AllArgsConstructor
클래스의 모든 인스턴스를 가지는 생성자를 자동적으로 만들어주는 역할을 한다.
@RequiredArgsConstructor
AllArgsConstructor와 비슷하게 모든 인스턴스를 가지는 생성자를 자동적으로 만들어주지만, @NonNull과 같은 특별한 제약조건을 가지게 되며, 이러한 조건들을 지키기 않을 경우 Exception을 던진다.
@NoArgsConstructor
변수 없는 생성자를 만들어준다. 그런데, 만약 필수적으로 존재해야 할 변수라면 에러를 발생시킨다.
에러를 무시하는 (force = true)라는 방식이 있기도 하다.
이렇게 3가지의 Constructor가 존재하는데, 이들의 공통적인 부분도 존재한다.
- private 생성자와 static생성자를 만들어준다.
- AccessLevel를 설정할 수 있다. 괄호에 access = AccessLevel.~~에 public, private을 넣어 해당 생성자에 대한 접근 수준을 설정할 수 있다. 불필요한 곳에서의 호출을 막을 수 있다.
'스프링 공부 > 어노테이션 정리' 카테고리의 다른 글
@EventListner (0) | 2024.02.02 |
---|---|
@JsonInclude (0) | 2023.01.02 |
@Log(@Slf4j를 써보다가 궁금해서 찾아본 내용 정리) (3) | 2023.01.01 |
@Bean (0) | 2022.12.28 |
@Configuration (0) | 2022.12.28 |