Server/Spring

[spring] Lombok annotation

aonee 2020. 2. 20. 16:45

@Data

:@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode 제공

모든 멤버변수의 생성자 및 접근자, ToString, equeals, hashCode등 모든 메소드 자동 생성

사용하지 않는 메소드까지 만들어주므로 고민 후 필요에 맞게 사용해야한다.

또한, Builder 클래스는 자동으로 생성되지 않는다.

 

@NoArgsConstructor

: Default 생성자 자동 생성. 같은 기능의 생성자가 이미 존재할 경우 compile error.

(단, 생성자 만들어줄 경우 Default생성자 자동생성 안됨. )

 

@AllArgsConstructor

: 모든 필드에 대한 생성자 자동 생성

 

@NonNull

: 클래스가 아닌 필드에 붙는 Annotation.

  Runtime시에 Null체크를 통해 NullPointerException발생.

  Compile시에는 Null체크 안함

 

@RequiredArgsConstructor

: @NonNull필드 or final이 붙은 필드의 생성자 자동 생성.

 

 

@Builder

: 자동으로 Builder 클래스 및 메소드 생성

  Inner Class로 Builder 클래스 생성.

 

@Builder
public class TestBuilder{
	private int userIdx;
    private String name;
    private String email;
}

public class Main{

	public static void main(String... args){
    	TestBuilder
    
    }
}

 

반응형