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 |