java, spring

스프링 프레임워크 @AllArgsConstructor, @RequiredArgsConstructor Annotation

isaac.kim 2021. 5. 8.
728x90
반응형

스프링 프레임워크(Spring Framework)

@AllArgsConstructor, @RequiredArgsConstructor Annotation

 

1. @AllArgsConstructor Annotation

클래스에 @AllArgsConstructor 어노테이션(Annotation)을 사용하면 인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자를 생성하게 됩니다.

@AllArgsConstructor 어노테이션이 설정된 클래스가 컴파일되었을 때 자동 생성되는 메서드들을 이클립스의 Outline에서 확인할 수 있는데, Restaurant(Chef, int, String)이라는 생성자 메서드가 생긴 것을 확인할 수 있습니다. 위에서도 얘기했듯이 인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자를 생성하게 되는 것입니다.

 

2. @RequiredArgsConstructor Annotation

여러 개의 인스턴스 변수들 중에서 특정한 변수에 대해서만 생성자를 작성하고 싶다면 @RequiredArgsConstructor 어노테이션과 @NonNull 어노테이션을 이용할 수 있습니다. 

 

@RequiredArgsConstructor 어노테이션은 @NonNull 뿐만 아니라 final이 붙은 인스턴스 변수에 대해 파라미터로 받는 생성자를 생성합니다.

오른쪽의 Outline 영역을 보시면 생성자가 생성되는데, num1과 str1는 @NonNull이나 final이 선언되지 않았기 때문에 인스턴스 변수를 파라미터로 받는 생성자에는 @NonNull과 final이 선언된 num2, str2에 대해 파라미터로 받는 생성자만 생성됩니다. 

 

Restaurant(double, @NonNull char)가 생성된 것을 확인할 수 있고, 다시 왼편에 선언된 클래스를 보면 num2는 double, str2는 char로 선언된 것을 확인할 수 있습니다. 해당 자료형으로 파라미터로 받는 생성자가 생성된 것이지요.

 

 

728x90
반응형