@RequiredArgsConstructor 란?

도즈·2025년 2월 27일

spring

목록 보기
2/12

📘 @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;
}
  • @RequiredArgsConstructor는 위같은 방식으로 생성자를 주입해준다.
  • 때문에 @RequiredArgsConstructor 사용하면 위 코드 처럼 생성자를 명시해주지 않아도 된다.



📌 기본 생성자, 다른 생성자가 필요하면 명시적으로 작성 해주어야 한다.

    // 기본 생성자 (매개변수 없는 생성자) - 직접 작성
    public Product() {
        this.name = "default";
        this.price = 0;
    }

    // 특정 필드만 받는 생성자 - 직접 작성
    public Product(String data) {
        this.name = "Default Name";
        this.price = 0;
        this.description = description;
    }
profile
도즈의 개발이야기

0개의 댓글