Spring Boot에서 @RequiredArgsConstructor, @AllArgsConstructor, @NoArgsConstructor는 Lombok 라이브러리에서 제공하는 어노테이션으로, 주로 클래스의 생성자를 자동으로 생성하는 데 사용된다. 각각의 어노테이션은 클래스에 어떤 생성자를 추가할지 결정한다.
@RequiredArgsConstructor
클래스에 있는 final 필드나 @NonNull로 마크된 필드에 대해 생성자를 생성합니다. 즉, 필수적으로 초기화해야 할 필드를 포함한 생성자를 자동으로 생성해줍니다.
@RequiredArgsConstructor
public class MyClass {
private final String name;
private final int age;
private String address; // 이 필드는 생성자에 포함되지 않음
}
위 예시에서는 final 이 붙은 name 과 age 필드를 배개변수로 받는 생성자가 자동 생성된다.
@AllArgsConstructor
클래스의 모든 필드를 매개변수로 받는 생성자를 생성한다. 클래스 내에 선언된 모든 필드를 초기화할 수 있는 생성자를 자동으로 만들어준다.
@AllArgsConstructor
public class MyClass {
private String name;
private int age;
private String address;
}
위 예시에서는 모든 필드 name , age 그리고 address 를 매개변수로 받는 생성자가 생성된다.
@NoArgsConstructor
매개변수가 없는 기본 생성자를 생성한다. 모든 필드를 기본값으로 초기화하는 생성자를 자동으로 만들어준다.
@NoArgsConstructor
public class MyClass {
private String name;
private int age;
private String address;
}
위 예시에서는 매개변수가 없는 기본 생성자가 생성됩니다. 이 경우, name, age, address 필드들은 기본값(null 또는 0)으로 초기화된다.
어노테이션들은 필요에 따라 조합하여 사용할 수 있다. 예를 들어, @AllArgsConstructor와 @NoArgsConstructor를 함께 사용하면, 모든 필드를 초기화하는 생성자와 기본 생성자 둘 다를 사용할 수 있다. 위의 생성자 어노테이션들은 엔터프라이즈 애플리케이션에서 DTO(Data Transfer Object)나 Entity 클래스를 정의할 때 매우 유용하게 사용된다. Lombok을 사용하면 코드의 가독성과 유지보수성을 높이는 데 도움이 된다.
'Spring' 카테고리의 다른 글
[SpringBoot]Jpa Auth Filter (0) | 2024.08.26 |
---|---|
[SpringBoot] Cookie & JWT (0) | 2024.08.21 |
[Spring Boot] JpaRepository (0) | 2024.08.20 |
[Springboot] IOC Container & Beans (0) | 2024.08.19 |
[Spring] Annotation @PathVariable, @RequestParam, @ModelAttribute, @RequestBody (0) | 2024.08.13 |