🔹 @RequiredArgsConstructor: final이 붙은 필드를 모아서 생성자를 자동으로 생성, 코드에는 보이지 않지만 실제 호출 가능
🔹 자바의 어노테이션 프로세서 기능을 이용해서 컴파일 시점에 생성자 코드를 자동으로 생성한다.
🔸 적용전
@Component
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
@Autowired
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy){
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
}
🔸 적용후
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
🔹 build.gradle 설정
//lombok 설정 추가 시작
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
//lombok 설정 추가 끝
//dependencies
//lombok 라이브러리 추가 시작
compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok'
//lombok 라이브러리 추가 끝