본문 바로가기

web +a

생성자 코드 최적화 - lombok 라이브러리

생성자 코드를 최적화하기 위해서 lombok 라이브러리를 사용

lombok 라이브러리 추가 & 플러그인 설치 후 다음과 같이 변경할 수 있었다.

 

 - 이전 코드

: 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;
    }
    ...
}


- 이후 코드 : @RequiredArgsConstructor사용

: 생성자 작성이 불필요!

: final 붙은 필드를 모아서 생성자를 자동으로 만들어준다. 

@Component
@RequiredArgsConstructor
public class OrderServiceImpl implements OrderService{

    private final MemberRepository memberRepository;
    private final DiscountPolicy discountPolicy;
	
    ...
}

 

확인해보면 (ctrl + F12) 생성자가 자동으로 포함되어 있는 것을 확인 가능하다.

 

 


요약

 

∨ 생성자 코드를 깔끔하게 쓰기

: 생성자 딱 하나 두고 @Autowired 생략하기

: Lombok 라이브러리의 @RequiredArgsConstructor 이용하기

 

그럼 의존관계를 막 추가해주기도 편하다.

그냥 private final Object object 아무거나 써주면, 생성자는 lombok에 의해 알아서 처리되니까.. 

 


(참고)

lombok의 @Getter, @Setter 어노테이션을 이용하면 getter, setter도 직접 작성하지 않고 간결하게 이용 가능하다. 필드를 보고 자동으로 만들어준다. 그냥 setXXX(), getXXX() 바로 이용하면 된다.

 

이밖에도 지원하는 기능이 많다. 나중에 필요하면 찾아보자. 

 

 

 

반응형
다른 블로그