스프링 | 스프링 부트

[ Spring ] @RequiredArgsConstructor란 ?

Adose 2025. 2. 7. 16:49

📘 @RequiredArgsConstructor ?

✅ final 필드나 @NonNull이 붙은 필드들에 대해 생성자를 자동으로 생성해준다 .
✅ Lombok 라이브러리 에서 제공하는 어노테이션이다.

 

 

⚒️ 코드 예시

@RequiredArgsConstructor
@Service
public class UserService {
    private final UserDao userDao;
    private final TransactionTemplate transactionTemplate;
}

  • final 필드, @NonNull 필드에 대해 생성자를 생성해주고
  • 이 생성자를 통해 의존성 객체자동으로 주입해준다.
    • 객체 주입 (Dependency Injection, DI)

 

public UserService(UserDao userDao, TransactionTemplate transactionTemplate) {
    this.userDao = userDao;
    this.transactionTemplate = transactionTemplate;
}
  • 따라서 Lombok의 @RequiredArgsConstructor는 위와 같은 생성자를 자동으로 추가해준다.

 

📌 @RequiredArgsConstructor는 기본 생성자나 다른 생성자는 생성하지 않으므로, 필요하다면 명시적으로 작성해야한다.