Post

[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.

© Yn3. Some rights reserved.