Spring Boot 로 개발하다보면 Lombok 어노테이션을 이용하여 편리하게 개발을 할수 있어서 자주 사용한다.
생성자 어노테이션의 대해 알아보자.
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
public class Person {
private String name;
private int age;
private final String address;
}
// 위 코드를 작성한 후에 컴파일러가 자동으로 생성한 코드는 아래와 같습니다.
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Person {
private String name;
private int age;
private String address;
// @NoArgsConstructor가 생성하는 기본 생성자
public Person() {
}
// @AllArgsConstructor가 생성하는 모든 매개변수를 갖는 생성자
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
// @RequiredArgsConstructor가 생성하는 final 멤버변수를 매개변수로 갖는 생성자
public Person(String address) {
this.address = address;
}
}
@NoArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
final
로 선언된 필드를 매개변수로 받는 생성자를 자동으로 생성합니다. 이 어노테이션은 주로 의존성 주입(Dependency Injection)을 사용하는 클래스에서 사용됩니다. final
로 선언된 필드에는 반드시 값이 설정되어야 하므로, 생성자에서 매개변수로 받아 초기화하는 것이 안전하다고 판단되는 경우 사용됩니다.