[SPRING] 롬복(Lombok) 사용하기
build.gradle 변경
build.gradle
에 lombok 설정과 라이브러리를 추가한다.
plugins {
id 'org.springframework.boot' version '2.7.0'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
// lombok 설정 추가 시작 🌟
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
// lombok 설정 추가 끝 🌟
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
// lombok 라이브러리 추가 시작 🌟
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
// lombok 라이브러리 추가 끝 🌟
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
설정 변경 후에, 우측 상단에 코끼리 모양을 눌러 설정을 적용한다.
혹시모르니 우측에 Gradle을 누른 뒤에 reload까지 한다.
preferences 설정
맥 기준, cmd
+,
를 눌러 Preferences에 들어간다.
lombok 설치
Plugins에 들어가서 Lombok 검색 후 설치한다.
Enable anotation processing 켜기
annotation process를 검색하여, Compiler 밑에 있는 Annotation Proccessors를 선택한다.
그 다음, Enable annotation processing를 체크한다.
Lombok 사용 예시
Getter, Setter, ToString
롬복 라이브러리를 통해 Getter와 Setter, ToString 설정을 편리하게 할 수 있다.
package hello.core;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class HelloLombok {
private String name;
private int age;
public static void main(String[] args) {
HelloLombok helloLombok = new HelloLombok();
helloLombok.setName("asdfew");
String name = helloLombok.getName();
System.out.println("name = " + name);
System.out.println("helloLombok = " + helloLombok); // ToString 호출
}
}
생성자 자동 생성
롬복 라이브러리가 제공하는 @RequiredArgsConstructor
기능을 사용하면 final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다.
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
실제 class
를 열어보면 다음 코드가 추가되어 있는 것을 확인할 수 있다.
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
정리
최근에는 생성자를 딱 1개 두고, @Autowird
를 생략하는 방법을 주로 사용한다.
여기에 Lombok 라이브러리의 @RequiredArgsConstructor
를 함께 사용하면, 기능은 다 제공하면서 코드는 깔끔하게 사용할 수 있다.
Lombok은 실무에서 굉장히 자주 사용되니 알아두자!
💛 개인 공부 기록용 블로그입니다. 👻