Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

블로그 이름 뭐하지

[Spring] Lombok 본문

Spring

[Spring] Lombok

가는말이고우면오는말은come 2024. 9. 29. 23:04

Lombok

자바프로젝트를 진행하는데 필수적으로 필요한 메서드, 생성자를 자동으로 생성하여

코드를 절약하도록 하는 라이브러리.

 

설치방법

1. Ctrl+Alt+S(환경설정)

 

2. Annotation Processors > 우측 Enable... 체크 후 Apply > Ok

 

3. Shift 두 번 누르고 Plugins 입력 후 엔터

 

4. Lombok이 설치되지 않은 상태라면 다시 재 설치 후 3번으로 되돌아감

 

5. Plugins에서 Lombok을 검색했을 때 installed 상태라면 설치 완료

 

사용방법

어노테이션(@)을 사용해 메서드, 생성자를 자동으로 추가시킨다.

 

1. @Getter, @Setter

기본 getter, setter 생성.

(AccessLevel)을 사용하면 해당 getter setter의 접근 제한자를 달거나 생성에서 제외할 수 있다.

@Getter
public Class Sample{
    @Getter(AccessLevel.PRIVATE)
    private String a;
    
    @Getter(AccessLevel.NONE)
    private String b;
    
    private String c;
}

//실제 자바코드
public Class Sample{
    private String a;
    private String b;
    private String c;
    
    private String getA(){
    	return this.a;
    }
    public String getC(){
    	return this.c;
    }

}

 

 

2. @NoArgsConstructor

파라미터가 없는 기본생성자를 생성한다.

필드들이 final로 생성된 경우 필드를 초기화 할 수 없어 생성자를 만들 수 없으므로 에러가 발생한다.

이때 @NoArgsConstructor(force=true)옵션으로 final 필드를 0, false, null 등으로 강제 초기화 시켜 생성자를 만든다.

@NonNull 같이 필드에 제약조건이 설정된 경우 생성자 내 null-check 로직이 생성되지 않는다.

@NoArgsConstructor
public Class Sample {

	private String a;
        
	public Sample(String a) {
		this.a = a;
	}
}

// 실제 자바 코드
public Class Sample {

	private String a;
        
	public Sample(String a) {
		this.a = a;
	}

	public Sample() {
		
	}
}

 

3. @ AllArgsConstructor

모든 필드를 파라미터로 가진 생성자를 생성한다.

@AllArgsConstructor
public Class Sample {

	private String a;
	private String b;	
	@NonNull    
	private String c;
    
}

// 실제 자바 코드
public Class Sample {

	private String a;
	private String b;	
	@NonNull    
	private String c;
        
	public Sample(String a, String b, @NonNull String c) {
		if(c == null) {
			throw new NullPointerException("c is marked non-null but is null");
		} else {
			this.a = a;        
			this.b = b;
			this.c = c;
		}
	}
}

 

 

4. @RequiredArgsConstructor

final 제어자가 붙은 필드, @NonNull로 마크된 필드를 파라미터로 가진 생성자를 생성한다.

@RequiredArgsConstructor
public Class Sample {

	private String a;
	private final String b;	
	@NonNull    
	private String c;
    
}

// 실제 자바 코드
public Class Sample {

	private String a;
	private final String b;	
	@NonNull    
	private String c;
        
	public Sample(String b, @NonNull String c) {
		if(c == null) {
			throw new NullPointerException("c is marked non-null but is null");
		} else {
			this.b = b;
			this.c = c;
		}
	}
}

참고한 링크

 

[Lombok] 자주 사용되는 Lombok Annotation 기능정리

먼저 자바 라이브러리 Lombok 다운로드 및 적용방법은 다음 게시글을 참고하자. Java 필수 라이브러리 Lombok 사용, 적용방법 Java 필수 라이브러리 Lombok 사용, 적용방법 Lombok 라이브러리는 VO(Value Objec

haenny.tistory.com

 

'Spring' 카테고리의 다른 글

[Spring] JDBC  (0) 2024.09.30
[Spring] Spring MVC  (0) 2024.09.30
[Spring] application.properties  (0) 2024.09.29
[Spring] IntelliJ 테스트 코드 설정  (0) 2024.09.29
[Spring] Gradle  (0) 2024.09.27