스프링 공부/어노테이션 정리

@뭐시깽이Constructor

장아장 2023. 1. 2. 16:32

프로젝트를 만들다보면, 필요에 따라 AllArgsConstructor, RequiredArgsConstructor, NoArgsConstructor를 보게된다. 

이에 대해 머리를 한번 정리하고 가야할 필요가 있다고 생각이 들어서, 하나씩 정리를 해보려고 한다. 

 

@AllArgsConstructor

클래스의 모든 인스턴스를 가지는 생성자를  자동적으로 만들어주는 역할을 한다. 


@RequiredArgsConstructor

AllArgsConstructor와 비슷하게 모든 인스턴스를 가지는 생성자를 자동적으로 만들어주지만, @NonNull과 같은 특별한 제약조건을 가지게 되며, 이러한 조건들을 지키기 않을 경우 Exception을 던진다. 


@NoArgsConstructor

변수 없는 생성자를 만들어준다. 그런데, 만약 필수적으로 존재해야 할 변수라면 에러를 발생시킨다. 

에러를 무시하는 (force = true)라는 방식이 있기도 하다. 


이렇게 3가지의 Constructor가 존재하는데, 이들의 공통적인 부분도 존재한다. 

  1. private 생성자와 static생성자를 만들어준다. 
  2. 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