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이 어떻게 구동하는지 정확히 알아야 예상치 못한 오류를 막을 수 있다.