Back-End/Study

@RequiredArgsConstructor - Dependency Injection

yeonx 2022. 8. 11. 04:21
728x90

@RequiredArgsConstructor

초기화되지 않은 final 필드나, @NonNull이 붙은 필드에 대해 생성자를 생성해 줌. 주로 의존성 주입(Dependency Injection) 편의성을 위해서 사용되곤 한다.

  • final 필드에 대해 생성자를 만들어주는 lombok의 annotation
  • Spring Framework의 DI(의존성 주입) 중 Constructor Injection(생성자 주입)을 임의의 코드 없이 자동으로 설정

 

@RequiredArgsConstructor 적용 전

@Component
public class LombokTest {

    private final MyService myservice;
    private final String id;

    @Autowired
    public LombokTest(MyService myservice, String id) {
        this.myservice = myservice;
        this.id = id;
    }

@RequiredArgsConstructor 적용 후

@Component
@RequiredArgsConstructor
public class LombokTest {

    private final MyService myservice;
    private final String id;
}

 

정리

  • 새로운 필드를 추가할 때 다시 생성자를 만드는 번거로움을 없앨 수 있다.(@ Autowired 사용하지 않고 의존 주입)
  • @RequiredArgsConstructor이 어떻게 구동하는지 정확히 알아야 예상치 못한 오류를 막을 수 있다.

 

출처 : https://byul91oh.tistory.com/432