IT/Spring | Java

[Spring] 롬복(Lombok) 생성자 어노테이션 @NoArgsConstructor @AllArgsConstructor

힞뚜루마뚜루 2023. 5. 17. 15:37
728x90

이름에서 알 수 있듯 생성자 역할을 하는 롬복 어노테이션으로 필수로 알고 있어야 한다.

 

다음과 같이 사용한다.

@NoArgsConstructor
@AllArgsConstructor
@RequiredConstructor
public class Account {
	
    @NonNull
	private String name;
    
    private String password;
    
    private int age;
}

 

@AllArgsConstructor

모든 필드를 인자로 받는 생성자를 생성한다. 이 때 순서는 클래스에 선언된 순서와 동일해야 한다.

Account account = new Account('hee', '비밀', 20);

 

 

@NoArgsConstructor

파라미터가 아무것도 없는 기본생성자를 생성한다. 모든 필드를 초기화하지 않고 객체를 생성할 때 사용한다.

Account account = new Account();

@NonNull과 같은 어노테이션이 붙어있으면 할당해줘야 한다.

 

 

@RequiredArgsConstructor

초기화 되지 않은 final 필드 또는 @NonNull로 표시된 필드까지 파라미터로 가질 수 있다.
@NonNull 필드의 경우 null 체크 로직도 함께 생성되므로 이 필드에 null 값이 포함된다면 NullPointerException이 발생한다.

Account account = new Account("hee")

 


@AllArgsConstructor와 @RequiredArgsConstructor 모두 클래스에 선언된 순서를 철저히 지켜야한다. 따라서, 향후 수정사항이 발생했을 때 자동 리팩토링이 되지 않아 불편함이 따른다. 때문에 @Builder를 쓰는 것을 권장한다.
728x90