1 분 소요

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은 실무에서 굉장히 자주 사용되니 알아두자!



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기