이것저것
Lombok
감자b
2024. 12. 27. 02:34
롬복이란?
Lombok 이란 반복되는 getter, setter, toString .. 등 반복되는 메서드를 annotation 형식으로 작성 해서 코드를 줄여주는 라이브러리를 의미한다.
적용 방법
- build.gradle에 다음과 같이 롬복 설정을 추가한다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
// 롬복 설정
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
// 롬복 설정
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') {
useJUnitPlatform()
}
- 롬복 플러그인 설치 (IntelliJ 구버전에만 해당)
- Settings → Build, Execution, Deployment → Compiler → Annotation Processors
- Enable annotation processing 부분 체크
대표적인 lombok annotation
@Getter, @Setter
필드에 대해 getter, setter를 작성해준다. 메서드 이름은 get필드명, set필드명이 된다.
@Data
모든 필드에 대해 @ToString, @EqualsAndHashCode, @Getter를 설정하고 모든 non-final 필드에 대해 @Setter, @RequiredArgsConstructor를 설정한다.
@NoArgsConstructor
매개변수가 없는 기본 생성자를 생성한다.
@RequiredArgsConstructor
초기화되지 않은 모든 final 필드에 대한 생성자를 생성한다.
@AllArgsConstructor
모든 필드에 대한 생성자를 만들어준다.
@Builder
Builder를 자동으로 작성해준다. 클래스에 작성하면 모든 필드에 대한 빌더를 생성하고, 원하는 필드에 대해서만 빌더를 생성하고 싶은 경우 생성자를 작성하고 그 위에 @Builder를 붙여준다.