스프링 프레임워크(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로 선언된 것을 확인할 수 있습니다. 해당 자료형으로 파라미터로 받는 생성자가 생성된 것이지요.
'java, spring' 카테고리의 다른 글
[Spring] 커넥션 풀(Connection Pool) HikariCP, Java로 설정하기 (0) | 2021.05.14 |
---|---|
Spring Project에 Connection Pool 설정하기 feat.HikariCP (2) | 2021.05.13 |
Illegal reflective access by org.springframework.cglib.core.ReflectUtils$1 Warning Message 해결 (0) | 2021.05.08 |
스프링 프레임워크(Spring framework) 테스트 코드 사용하기 (1) | 2021.05.08 |
스프링 프레임워크가 root-context.xml 읽어 들이는 순서 (0) | 2021.05.08 |