본문 바로가기

Programming/SpringBoot

@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor

728x90

Spring Boot에서 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor는 Lombok 프로젝트에서 제공하는 애노테이션입니다. 이들 애노테이션은 자동으로 생성자를 생성하도록 지정하는 데 사용됩니다.

 

  • @NoArgsConstructor: 파라미터가 없는 기본 생성자를 자동으로 생성합니다. 이 애노테이션을 사용하면, 생성자가 하나도 없는 클래스에 대해 자동으로 디폴트 생성자를 생성할 수 있습니다.
  • @AllArgsConstructor: 모든 필드를 파라미터로 갖는 생성자를 자동으로 생성합니다. 이 애노테이션을 사용하면, 클래스의 모든 필드에 대한 생성자를 자동으로 생성할 수 있습니다.
  • @RequiredArgsConstructor: final 키워드가 붙은 필드나, @NonNull 애노테이션이 붙은 필드에 대한 생성자를 자동으로 생성합니다. 이 애노테이션을 사용하면, 클래스의 필수 필드에 대한 생성자를 자동으로 생성할 수 있습니다.

예를 들어, 다음은 User 클래스에 대해 Lombok의 @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 애노테이션을 사용한 예제 코드입니다.

import lombok.*;

@Data
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class User {
    private Long id;
    @NonNull private String name;
    @NonNull private int age;
}

 

위 코드에서 @Data 애노테이션은 Lombok에서 제공하는 애노테이션으로, 모든 필드에 대한 getter와 setter, toString, equals, hashCode 메서드를 자동으로 생성합니다.

 

@NoArgsConstructor 애노테이션은 파라미터가 없는 기본 생성자를 자동으로 생성합니다.

@AllArgsConstructor 애노테이션은 모든 필드에 대한 생성자를 자동으로 생성합니다.

@RequiredArgsConstructor 애노테이션은 final 키워드가 붙은 필드나, @NonNull 애노테이션이 붙은 필드에 대한 생성자를 자동으로 생성합니다.

 

위 코드에서 Lombok 애노테이션을 사용하여 User 클래스에 대한 생성자를 자동으로 생성하였습니다. 따라서, User 객체를 생성할 때 다음과 같이 생성자를 호출하여 객체를 생성할 수 있습니다.

User user1 = new User();
User user2 = new User(1L, "Alice", 20);
User user3 = new User("Bob", 30);

 

728x90

'Programming > SpringBoot' 카테고리의 다른 글

DisplatcherServlet 동작 순서  (0) 2023.02.24
[Spring] 빈과 컨테이너  (0) 2023.02.24
[Spring] AOP는 프록시 객체를 이용하여 구현하는 이유는?  (0) 2023.02.24
[Spring] AOP란?  (0) 2023.02.24
Spring 특징 요약  (0) 2023.02.24