Lombok

Mina Park·2023년 10월 22일
  • Lombok의 @RequiredArgsConstructor
    • final이 붙은 필드를 모아서 생성자를 자동으로 만들어줌(@Autowired 부분 작성할 필요가 없음)
@Component
@RequiredArgsConstructor
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;
//    }

    @Override
    public Order createOrder(Long memberId, String itemName, int itemPrice) {
        Member member = memberRepository.findById(memberId);
        int discountPrice = discountPolicy.discount(member, itemPrice);

        return new Order(memberId, itemName, itemPrice, discountPrice);
    }
}

최근 트렌드는,
생성자를 하나만 두고 @Autowired는 생략하고 Lombok 라이브러리의 @RequiredArgsConstructor 를 함께 사용

0개의 댓글