..
Lombok @RequiredArgsConstructor 장점과 사용법
1. @RequiredArgsConstructor란?
자바 개발에서 가장 권장되는 의존성 주입(DI) 방식은 생성자 주입입니다. 하지만 필드가 늘어날수록 생성자 코드가 길어지고 지저분해지는 단점이 있습니다. 롬복(Lombok)의 @RequiredArgsConstructor는 초기화되지 않은 final 필드나 @NonNull이 붙은 필드에 대해 생성자를 자동으로 생성해 주는 아주 유용한 어노테이션입니다.
2. 코드 비교
AS-IS (전통적인 방식)
매번 생성자를 직접 작성해야 하며, 필드가 추가될 때마다 생성자 파라미터도 수정해야 합니다.
@Controller
public class UserController {
private final UserService userService;
private final LogService logService;
public UserController(UserService userService, LogService logService) {
this.userService = userService;
this.logService = logService;
}
}
TO-BE (Modern Spring Style)
단 한 줄의 어노테이션으로 생성자 코드를 완전히 대체합니다.
@Controller
@RequiredArgsConstructor
public class UserController {
// final이 붙은 필드를 대상으로 생성자가 자동 생성됩니다.
private final UserService userService;
private final LogService logService;
}
이 기능을 사용하려면 해당 필드에 반드시 final 키워드를 명시해야 스프링이 런타임에 올바른 빈을 주입할 수 있습니다.