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

'Back-End > Study' 카테고리의 다른 글

[Mac M2] UTM위에 우분투 설치  (0) 2022.09.25
DAO와 Mapper 인터페이스  (0) 2022.08.14
DAO와 Repository 차이  (0) 2022.08.10
Lombok 라이브러리 어노테이션  (0) 2022.08.04
JPAQueryFactory  (0) 2022.08.01