@RequiredArgsConstructor란?
Lombok 라이브러리에서 제공하는 기능으로, 클래스의 생성자를 자동으로 생성해주는 어노테이션이다.
일반적으로 Spring에서는 @Autowired를 이용하여 의존성을 주입할 때, 해당 클래스의 생성자를 이용한다.
이때 @RequiredArgsConstructor를 사용하면 Lombok이 컴파일 시간에 해당 클래스의 생성자를 자동으로 생성해준다.
따라서, @Autowired와 @RequiredArgsConstructor는 모두 Spring에서 의존성 주입을 처리하는데 사용되지만, @RequiredArgsConstructor를 사용하면 코드가 더 간결해지고, 더 안전하게 의존성을 주입이 가능하다.
예시
@Controller
@RequestMapping("/basic/items")
@RequiredArgsConstructor
public class BasicItemController {
//final이 붙은 멤버 변수만 생성자를 자동으로 만들어준다
private final ItemRepository itemRepository;
//이하 생략..
}
주의사항
@RequiredArgsConstructor 사용 시 "final" 붙은 멤버 변수만 사용해서 생성자를 자동으로 만들어준다.
만약 'final'없이 사용한다면 BeanCreationException이 발생한다.