[Lombok] Spring Boot 생성자 어노테이션 비교 정리

2021. 7. 7. 12:04
728x90

Spring Boot 로 개발하다보면 Lombok jar파일을 이용하여 개발을 아주 간편하게 할수 있어 자주 사용된다.

각 어노테이션별 사용법 차이를 알아보자.

 

| 생성자 어노테이션 종류

@NoArgsConstructor

@AllArgsConstructor

@RequiredArgsConstructor


@NoArgsConstructor - 파라미터가 없는 생성자

해당 어노테이션을 class 위에 정의하면 파라미터가 없는 생성자를 자동으로 생성한다.

만약 final로 필드를 정의한 경우 오류 메세지가 발생한다.

@NonNull 어노테이션이 붙어있는 필드가 있다면 해당 생성자에서 확인하지 않는다.


@AllArgsConstructor - 모든 필드를 파라미터로 가지는 생성자

모든 필드를 파라미터로 가지는 생성자를 생성한다. 


@RequiredArgsConstructor - 기본 값이 없고 @NonNull 어노테이션이 붙은 필드를 파라미터로 입력받는 생성자

반드시 필요한 필드들을 파라미터로 하는 생성자를 생성한다.

@NonNull과 같은 어노테이션이 붙은 필드들과, final 로 정의된 필드들을 포함한 생성자를 자동 생성해준다.

 

 

클래스의 생성자를 만들어준다. 세 종류를 중복해서 사용할 수 있다.

세 가지 어노테이션 모두 객체를 만드는 static 메소드의 이름을 입력받는 staticName, 

생성자의 접근제한자를 설정하는 access 파라미터로 AccessLevel 을 설정할 수 있다. 기본값은 public 이다.


참고

https://projectlombok.org/api/lombok/NoArgsConstructor.html

https://projectlombok.org/api/lombok/RequiredArgsConstructor.html

https://projectlombok.org/api/lombok/AllArgsConstructor.html

 

AllArgsConstructor (Lombok)

@Target(TYPE) @Retention(SOURCE) public @interface AllArgsConstructor Generates an all-args constructor. An all-args constructor requires one argument for every field in the class. Complete documentation is found at the project lombok features page for @Co

projectlombok.org

기타 참고 : https://projectlombok.org/features/constructor

 

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

 

projectlombok.org

 

반응형

BELATED ARTICLES

more