Framework/Spring🌱

[Spring]@RequiredArgsConstructor

개발자겨려 2024. 5. 2. 10:26
@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이 발생한다.

BeanCreationException