앞에서는setter를 통한 주입을 봤다면 이번에는 생성자를 통한 주입을 해보겠다.
스프링 4.3 이후부터는 @Autowired 없이 생성자를 통해 주입이 가능하다.
@Component
@Data
public class SampleHotel {
private Chef chef;
public SampleHotel(Chef chef) {
this.chef = chef;
}
}
@AllArgsConstructor를 사용하면 모든 인스턴스(필드)를 생성자에 주입할 수 있게해준다.
코드가 간단해졌다.
기본생성자가 필요하면 따로 생성할 필요가 있다.
@Component
@Data
@AllArgsConstructor
public class SampleHotel {
private Chef chef;
private Restaurant restaurant;
}

@RequiredArgsConstructor는 @NonNull로 설정된 인스턴스만 생성자에 주입해준다.
Restaurant는 @NonNull이 붙지 않아서 생성자에서 주입되지 않았다.
@Component
@RequiredArgsConstructor
public class SampleHotel {
@NonNull
private Chef chef;
private Restaurant restaurant;
}

'Spring > 코드로 배우는 스프링 웹 프로젝트' 카테고리의 다른 글
마이 바티스 사용하기 (0) | 2021.02.22 |
---|---|
커넥션 풀 설정하기 (0) | 2021.02.22 |
Oracle Sql Developer 설정하기 (0) | 2021.02.22 |
Lombok 라이브러리 설치 및 테스트 (setter를 통한 주입) (0) | 2021.02.22 |
프로젝트 생성 및 설정하기 (0) | 2021.02.22 |