조컴퓨터

Lombok 과 최신 트랜드 본문

공부/Spring

Lombok 과 최신 트랜드

챠오위 2022. 1. 21. 00:13

1) 생성자에 final 키워드 사용(생성자 1개라 @Autowired 생략한 형태)

 

@Component
public class OrderServiceImpl implements OrderService {

    private final MemberRepository memberRepository;
    private final DiscountPolicy discountPolicy;

    public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
        this.memberRepository = memberRepository;
        this.discountPolicy = discountPolicy;
    }
    
}

 

 

2) Lombok 라이브러리 적용

 

plugins {
	id 'org.springframework.boot' version '2.6.2'
	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'
}

test {
	useJUnitPlatform()
}

 

1. Preferences(윈도우 File → Settings) → plugin → lombok 검색 설치 실행 (재시작)

2. Preferences → Annotation Processors 검색 → Enable annotation processing 체크 (재시작)

3. 임의의 테스트 클래스를 만들고 @Getter, @Setter 확인

 

 

 

3) @RequiredArgsConstructor 기능을 활용하여 final 이 붙은 필드를 모아 생성자를 자동으로 생성

 

@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {

    private final MemberRepository memberRepository;
    private final DiscountPolicy discountPolicy;
    
}

 

Ctrl + F12 / OrderServiceImpl 에 대한 생성자가 활성화 되어 있음을 확인할 수 있다.