블로그 이름 뭐하지
[Spring] Lombok 본문
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 |