[Lecture - 김영한님(스프링 핵심 원리 - 기본편)] lombok과 최신 트렌드
inflearn에서 김영한님 강의를 들으면서 내용을 정리해보자.
스프링 핵심 원리 - 기본편
lombok과 최신 트렌드
1
2
3
4
5
6
7
8
9
10
11
12
@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;
}
}
위 코드처럼 생성자가 딱 1개만 있으면 @Autowired
를 생략할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
@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;
}
}
이제 lombok을 적용하자.
lombok 라이브러리가 제공하는 @RequiredArgsConstructor
기능을 사용하면 final
이 붙은 필드를 모아서 생성자를 자동으로 만들어준다.
1
2
3
4
5
6
7
@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService {
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
}
lombok을 추가하기 전의 코드와 완전히 동일하지만 lombok을 사용하면 매우 간결해진다.
lombok이 자바의 어노테이션 프로세서라는 기능을 이용해서 컴파일 시점에 생성자 코드를 자동으로 생성해준다.
최근에는 생성자를 딱 1개만 두고 @Autowired
를 생략하는 방법을 주로 사용한다.
여기에 Lombok 라이브러리의 @RequiredArgsConstructor
를 함께 사용하면 기능은 다 제공하면서 코드는 더 깔끔하게 사용할 수 있다.
This post is licensed under CC BY 4.0 by the author.