728x90
[add] 롬복과 최신 트렌드 [#32] #35
* 생성자가 딱 1개만 있으면 @Autowired를 생략할 수 있다.
더보기
@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
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;
}
}
build.gradle에 lombok 설정 추가
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
의존관계도 넣어준다. (dependencies)
//lombok 라이브러리 추가 시작
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
//lombok 라이브러리 추가 끝
+) 추가 세팅하기(settings > plugin > lombok)
enable annotation processing 꼭 켜둔다.
→ 이제 인텔리제이에서 롬복을 사용할 수 있게 되었다.
롬복 적용해보기
@RequiredArgsConstructor
필수 값인 final이 붙은 것을 가지고 생성자를 만들어준다. (아래와 같이)
final 이 붙은 2개를 파라미터로 받는 생성자를 만들어준다.
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
기존 코드
@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;
}
}
‖
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
* ctrl + F12
➡️ lombok 라이브러리가 제공하는 @RequiredArgsConstructor 기능을 사용하면
final이 붙은 필드를 모아서 생성자를 자동으로 만들어준다.
728x90
'TIL' 카테고리의 다른 글
230일차(모험 139일차) - 어노테이션 직접 만들기 (0) | 2022.05.03 |
---|---|
229일차(모험 138일차) - @Autowired 필드 명, @Qualifier, @Primary (0) | 2022.05.02 |
225일차(모험 134일차)- 생성자 주입을 선택해라! (0) | 2022.04.28 |
224일차(모험 133일차) - 인스타그램 코드 수정 (0) | 2022.04.27 |
223일차(모험 132일차) (0) | 2022.04.26 |