Lombok에서는 생성자를 자동으로 생성해주는 어노테이션을 사용할 수 있습니다.
@NoArgsConstructor
은 파라미터 없는 기본 생성자를 생성합니다.@AllArgsConstructor
은 모든 필드 값을 파라미터로 받는 생성자를 생성합니다.@RequiredArgsConstructor
은 final, @NonNull 필드 값만 파라미터로 받는 생성자를 생성합니다.그 예로 들면
@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
public class Member{
private Long id;
@NonNull
private String memberName;
@NonNull
private String memberEmail;
이러한 클래스가 존재할 경우, 외부 클래스에서 다양한 방법으로 생성자를 통하여 생성할 수 있습니다.
Member member1 = new Member();
Member member2 = new Member(1L, "song", "navernaver@naver.com");
Member member3 = new Member("song", "navernaver@naver.com");
@Data
어노테이션은 앞서 사용했던 생성자 생성 어노테이션을 모두 설정해 주는 어노테이션입니다. 클래스 레벨에 @Data
를 작성하여 모든 필드가 접근자, 설정자가 자동 생성되며 final, @NonNull 필드 값을 받는 생성자가 생성되고 그 외에도 toString
, equals
, hashCode
가 자동으로 만들어진다는 이점이 있습니다.