우당탕탕 개발일지

[Lombok] RequiredArgsConstructor 어노테이션이란? 본문

개발

[Lombok] RequiredArgsConstructor 어노테이션이란?

kyunge_ev 2022. 11. 28. 19:41

@RequiredArgsConstructor 

Spring 사용 시 final 로 DI(의존성주입)를 할 때 필요한 객체를 선언하여 생성자를 만들어주어야 함

이때, 생성자 코드를 직접 작성하는 것이 아니라 @RequiredArgsConstructor 어노테이션을 사용하여 자동으로 설정

 

👀 실습코드

👉 @RequiredArgsConstructor 사용 전 (생성자 추가 필요)

1
2
3
4
5
6
7
8
9
10
11
@RestController
@RequestMapping("/api/v1/reviews")
@Slf4j
public class ReviewController {
 
    private final ReviewService reviewService;
 
    public ReviewController(ReviewService reviewService) {
        this.reviewService = reviewService;
    }
}
cs

👉 @RequiredArgsConstructor 사용 후 (어노테이션만 추가해주면 생성자 추가 필요없음)

1
2
3
4
5
6
7
8
9
@RestController
@RequestMapping("/api/v1/reviews")
@Slf4j
@RequiredArgsConstructor // 필요한 argument를 넣어줌 constructor를 만들어줌
public class ReviewController {
 
    private final ReviewService reviewService;
 
}
cs

@RequiredArgsConstructor  장점

final로 DI 해야할 객체가 많을 때 생성자를 계속해서 만들어 줄 필요없이 @RequiredArgsContructor 어노테이션 하나로 자동 설정할 수 있다.